Page 2 of 8

Posted: Thu 22 Jan 2015, 10:41
by xanad
Packit and Uextract mods.
changed the save path for the files .mo.
now they are normally placed in LC_MESSAGES for beginners translators.

Posted: Fri 23 Jan 2015, 01:36
by don570
Here's a tip for people making gettext translations of their script
in many foreign languages .

1) install script in executable place with devx file installed as well

2) install poeditor

3) set your computer to a language you know you haven't a mo file ex. Russian

4) run momanager and tick the poedit box . Find your script. and click create.

5) From menu of poedit , run 'Export' which exports a html file which is mostly
empty but has the English text that needs to be translated.

6) You can copy this text out of html file easily and use Google translate service
to translate into a language you don't know such as Chinese.
This method allows the script creator to localise his script into many languages.
quickly.

One negative I have found is the Arabic language, as clipboard of windows will reverse flow of text.
___________________________________________

Posted: Sat 24 Jan 2015, 10:02
by xanad
Hi Don,
:idea: is an interesting way, above all for long files, but we must remember to check the translation because google sometimes translates in his own way, not the right one.

Posted: Sat 24 Jan 2015, 18:58
by don570
I noticed that '/n' formatting symbol confuses Google translation service,
so they need to be removed before clicking on 'Translate' button.

Also deleting the dollar sign ($) of a variable value would help the translation
as well.

______________________________________________________

Posted: Mon 26 Jan 2015, 20:19
by don570
Also put a period or question mark after every sentence and lay
out the sentences line by line. A button label should take up just one line.

Click the translate button that google supplies
and save the Google page as html. This way you have both
the English and the foreign language side by side.

I found that Arabic is possible although tricky because of reverse flow of text.

\n becomes n\ in Arabic

____________________________________

Posted: Tue 27 Jan 2015, 06:47
by xanad
If, after writing many translations, you realize that you have repeatedly done something wrong, you can fix using this script from the terminal.
Create a folder containing all files .po interested, and from terminal write:

Code: Select all

sed -ri '/msgstr\s+"/s/OLDTERM/NEWTERM/' *.po
where OLDTERM is a word to change and NEWTERM is the word to be replaced.
Thanks to an anonymous user who send me this script.
Last thing to create yet, is how to convert many files po2mo in one shot. Someone can suggest a way?

msgfmt

Posted: Tue 27 Jan 2015, 10:21
by L18L
xanad wrote:...how to convert many files po2mo in one shot. Someone can suggest a way?
not convert but format:

Code: Select all

for f in `ls  *.po`; do  msgfmt $f  -o ${f//po/mo}; done
try it because not tested.

Re: msgfmt

Posted: Tue 27 Jan 2015, 12:04
by xanad
L18L wrote: not convert but format:

Code: Select all

for f in `ls  *.po`; do  msgfmt $f  -o ${f//po/mo}; done
try it because not tested.
Works fine, thanks L18L :D

Posted: Tue 27 Jan 2015, 13:45
by xanad
@L18L,
8) useful commands, and finally... to reverse many files mo2po?
With these commands would be interesting to make a .pet...

Posted: Tue 27 Jan 2015, 15:38
by L18L
xanad wrote:useful commands, and finally... to reverse many files mo2po?..
open a consile
type:
msg
then preass tab key twice and there you can see useful commands.
Guess (and try command --help) which one is for your question.

Posted: Tue 27 Jan 2015, 15:59
by xanad
Wow! This is just a nice tip ..., damn did not know it ... :lol:

Code: Select all

for f in `ls  *.mo`; do  msgunfmt $f  -o ${f//mo/po}; done

Posted: Tue 27 Jan 2015, 17:04
by xanad
After unfmt, three files return this answer:

Code: Select all

msgunfmt: file "acpi.mo" is not in GNU .mo format
msgunfmt: file "net-setup.mo" is not in GNU .mo format
msgunfmt: file "refresh-menus.mo" is not in GNU .mo format
The others files are right.

If I use java -p

Code: Select all

read-mo.c:240: message catalog has context dependent translations, but the output format does not support them.
read-mo.c:240: message catalog has plural form translations, but the output format does not support them. Try generating a Java class using "msgfmt --java", instead of a properties file.

Re: msgfmt

Posted: Wed 28 Jan 2015, 12:04
by xanad
L18L wrote:
xanad wrote:...how to convert many files po2mo in one shot. Someone can suggest a way?
not convert but format:

Code: Select all

for f in `ls  *.po`; do  msgfmt $f  -o ${f//po/mo}; done
try it because not tested.
ok it works, but also replaces all the characters 'po' with 'mo'.... and vice versa.
ex .: 'osmo' becomes 'ospo' and 'momanger' becomes 'pomanager' :shock:

:arrow: Solution: adds the dots before the extensions
mo2po

Code: Select all

for f in `ls  *.mo`; do  msgunfmt $f  -o ${f//.mo/.po}; done
po2mo

Code: Select all

for f in `ls  *.po`; do  msgfmt $f  -o ${f//.po/.mo}; done

Posted: Fri 30 Jan 2015, 07:40
by xanad
Further changes to strengthen the code (from an italian user):

mo2po:

Code: Select all

for f in *.mo; do msgunfmt "$f" -o "${f%.mo}.po"; done
po2mo:

Code: Select all

for f in *.po; do msgfmt "$f" -o "${f%.po).mo"; done


First very, very simple example for a gtk-gui:
mo2po
Image
-Create a folder with the files .mo to be converted to .po
-Place inside the folder the file mo2po
-Click ok button
-If launched directly from geany, you will also have the reports of possible errors creating .mo files.

Posted: Sat 31 Jan 2015, 17:45
by don570
I've finished puppy units 2.1
- added more languages - now Italian , French ,Spanish , German

____________________________________________________

I used Google translation service

Tips ----> remove \n and add lots of punctuation. Space out the
sentences line by line. Then save the Google translation page
to a HTML file to be opened up later.

________________________________________

Posted: Sun 01 Feb 2015, 07:28
by xanad
don570 wrote: I used Google translation service
Warning, do not rely on automatic translations, very often they are wrong. They should always be checked by a native speaker.

Example:

from

Code: Select all

msgid "22) The volume of a pyramid:"
msgstr "22) Volume di un pyramido:"
to

Code: Select all

msgid "22) The volume of a pyramid:"
msgstr "22) Volume di una piramide:"

Posted: Tue 03 Feb 2015, 08:45
by xanad
New file again... edit export
acpi_poweroff.sh

Posted: Wed 04 Feb 2015, 00:33
by don570
msgstr "22) Volume di una piramide:"
Don't blame Google :lol: Blame me.

I was working at home without
internet access, so I just guessed a word :oops:

I'll change it in a few days.

___________________________________________________

Posted: Sun 08 Feb 2015, 17:19
by Argolance
Bonsoir,
robwoj44 wrote:I gettextized psip32.
1. Download the source from https://chiselapp.com/user/jamesbond/re ... dir?ci=tip
The link goes to a page that gives the list of the source files, but how to download the whole directory?
Silly question: Why keeping the file named "demo.mo" instead of doing things to get something like "psip.mo"? Isn't it a bit confusing?

Thanks

Cordialement.

Posted: Sun 08 Feb 2015, 21:20
by robwoj44
The link goes to a page that gives the list of the source files, but how to download the whole directory?
Silly question: Why keeping the file named "demo.mo" instead of doing things to get something like "psip.mo"? Isn't it a bit confusing?
I do not know how to download the whole directory, but it is not necessary.
You can use standard psip which is in puppy. Download psip.pot from http://www.murga-linux.com/puppy/viewto ... h&id=83189. Translate, make demo.mo because the orginal psip looks for demo.mo as translated file.
I'm agree that it is confusing, but in the orginal source code there is 'textdomain ("demo")'. Of course you can download and recompile psip with 'textdomain ("psip")'.