Ruby to convert US to UK punctuation/spelling?

I have about a thousand multipage documents which I need to convert from
US English and punctuation to UK English and punctuation. Before I start
on a ruby script (I’m just learning ruby) wanted to see if anyone knows
of existing tools to do this? I’ve also looked into a perl US->UK
conversion tool but doesn’t seem to exist.

I’m starting with utf8 rtf documents which have printer’s quotes (i.e.,
distinct left and right curly quotes) which were retained from an
original conversion from MS Word docs. For my documents, converting from
US to UK punctuation means double quotes become single quotes and some
single quotes become double (apostrophes are retained and single quotes
not inside double quotes would need to be retained); but in the
conversion I would like to retain distinct left and right quotation
marks.

I’m thinking that the end documents should have all print typography
(em-dashes, en-dashes, printer quotes) should be converted to character
entities.

If there is no existing script to do this (seems like a problem others
must have faced before) any thoughts on the right approach/tools/code
snippets?

Many thanks Rubyist…

-------- Original-Nachricht --------

Datum: Mon, 16 Jun 2008 09:45:45 +0900
Von: Michael L. [email protected]
An: [email protected]
Betreff: Ruby to convert US to UK punctuation/spelling?

Dear Michael,

I have about a thousand multipage documents which I need to convert from
US English and punctuation to UK English and punctuation. Before I start
on a ruby script (I’m just learning ruby) wanted to see if anyone knows
of existing tools to do this? I’ve also looked into a perl US->UK
conversion tool but doesn’t seem to exist.

for general spell-checking, there is aspell, which you can use with
different language
options, and there are Ruby bindings for it:

http://blog.evanweaver.com/files/doc/fauna/raspell/files/README.html

So you might use the language option Aspell.new(“en_GB”) rather than
Aspell.new(“en_US”) for the spell checking of misspelled (in the British
English sense) American English text.
If you have so much text, it will find some other errors, that both
language forms consider erroneous, too. :slight_smile:

I’ve also looked into a perl US->UK conversion tool but doesn’t seem to exist.

There certainly are Perl bindings to aspell- I’d bet a hundred quid/two
hundred bucks :slight_smile:

For my documents, converting from
US to UK punctuation means double quotes become single quotes and some
single quotes become double (apostrophes are retained and single quotes
not inside double quotes would need to be retained); but in the
conversion I would like to retain distinct left and right quotation
marks.

That suggests some combination of String#scan, String#gsub and Regular
expressions …
Since apostrophes and quotation marks are the same sign, I’d suggest
making a
list of words with apostrophes, write them to a file, where you can
correct them manually,
and String#gsub - replace first the apostrophes by something like

and then the quotes by and or the other way round.

There’s a Regular expressions tutorial here:

I’m thinking that the end documents should have all print typography
(em-dashes, en-dashes, printer quotes) should be converted to character
entities.

You can do that with String.gsub(“–”,‘’), after having copied
the em-dash
into the double quotes… etc…

Best regards,

Axel