Page 1 of 1

puppy localization [solved]

Posted: Fri 25 Feb 2011, 08:51
by mavrothal
I was trying to localize XOpup in Spanish the other day. Thanks to shinobar's and don570's work on puppy5.2 I had a good start.
Then I realized how much of puppy's UI and P_apps are hard coded in english. Few HUNDREDS distinct fields!!!

All over Xgialogs, gtkdialog3s and gtkdialog-splashes are in English, with no easy way to translate-one-use-everywhere. Eg you can do it for a given build but then with the next one you have to go all over again.
The other issue is, that a lot of P_apps are build in such a way that if you change the string the layout is getting all messed-up.

There are obviously exceptions but even there the localizations are all over the place and some times (quickpet comes to mind) they include all the localizations available taking up space with no benefit for the individual user.

These mean that a localized version is both tedious to make and if done, is destine to stays behind for a long time if not for ever (see puppy localized versions around).
Further more installing new pets you are back in english again either for the pet only or everything (!) in some cases.

I can appreciate the XOpup is an "Australian OS" and that English is spoken all over the world, however is a fact that the vast majority of computer users use an OS in their native language. So puppy is boxing itself in the corner with this approach.
Considering the ongoing support "for older hardware" is likely that a lot of it is or may end up on non-english speaking countries. So having "easy localization" is important to increase puppy's reach.

I know that have been similar discussions before and that there are more than one way to implement this, but I think that ultimately is up to Barry Kauler and his woof to decide if and which way to go.

This thread may serve as an idea exchange place that will hopefully lead to a mechanism (pootle, gettext, other) that will allow easy localization throughout Puppy.
Ultimately locals can be provided separately in the Live-CD/Download and be installed a a "first-run" option or at will latter, keeping Puppy small and agile but flexible too.

puppy localization

Posted: Fri 04 Mar 2011, 15:47
by L18L
thank you, mavrothal for opening this thread and
thank you, Bert for having pointed me to this thread.
I think that ultimately is up to Barry Kauler and his woof to decide if and which way to go.
I agree and I think he is already on the way, see 1st comment at PPM fixed about NLS-packages.
An improvement for the non-english user would be to have the NLS-box in PPM ticked by default.
That's my 2 cents for now.
Cheers
-------------------------------------------
Quickset Wary-502q (multilingual)

Posted: Fri 04 Mar 2011, 21:26
by mavrothal
You guys are doing en excellent job with Quickset Wary-502q (multilingual).
But look how things stand at the moment.
You can find localization strings at:
/usr/lib/locale/
/usr/share/i18n/locales/
/usr/share/locale/
/usr/share/doc/nls/
/usr/local/share/locale/
/usr/X11R7/lib/X11/locale/
/usr/local/apps/ROX-Filer/Messages/
/usr/share/doc/*/nls/
/usr/local/*/locals/
/usr/share/*/locale/
/usr/share/*/templates/
and I'm sure that are still dialogues and splashes escaping your excellent work.

And the next pet that comes up if it has any locals may has it anywhere! and implement any localisation scheme the developer may find appropriate!
This does not make sense and certainly makes localizations very difficult. Next to impossible to streamline and most important recycle from one version to the next.
Is almost impossible to easily find out which strings are changed and need a new translation and which not

That's why I think that some more organised effort is needed to decide how localisations will be done, where the strings will be how new versions will identify modified strings, etc.

Just consider this. Wary 500 that quickset is based on, is just 2 month old. Are you going to repeat all this work for wary 5.1.1 that just came out? What about 5.1.2 ?...

Posted: Thu 24 Mar 2011, 10:41
by 01micko
/usr/lib/locale/
/usr/share/i18n/locales/
/usr/share/locale/
/usr/share/doc/nls/
/usr/local/share/locale/
/usr/X11R7/lib/X11/locale/
/usr/local/apps/ROX-Filer/Messages/
/usr/share/doc/*/nls/ (***note these are usually for DOTpot or DOTpo files [micko])
/usr/local/*/locals/
/usr/share/*/locale/
/usr/share/*/templates/
Hmm... I have noticed the inconsistency without downloading lupq or wary quickset.

The convention for compiled apps, as long as they are compiled --prefix=/usr, is for the DOTmo files to go in /usr/share/locale/$LANGUAGE_CODE/LC_MESSAGES/${PROGRAM_NAME}.mo

This is where all compiled gettext DOTmo files should go. So if one creates a script and localises it with gettext (which should be the standard) then the main DOTpot file is translated as a ${LANGUAGECODE}.po file then compiled into a $PROGRAM_NAME.mo file which resides where said.

The exception (for the moment) is zigbert's method, which I used in Quickpet. It is basically just reading a special $LANG file in the program's working directory. I guess this is where it get's messy. I have approached zigbert but he is quite busy until the next northern winter.

I suppose what we need to do is apply the standards, that is, everyone who scripts should learn to use gettext and where the locale file should be stored. It's not difficult. Even I roughly learnt some of it!

Cheers!

Zigbert improves localization

Posted: Sat 26 Mar 2011, 19:59
by don570
Zigbert has recently improved his code so that only the first two letters
need to be used

Example: es is used rather than es_MX for
mexican spanish . This avoids the use of all
those links that 01micko used
in quickpet .

I made a puppyhelp application by looking at the code in
Zigbert's pCD application and then I used what I know about
how pmusic is installed.

puppyhelp-1.0.pet
puppyhelp_NLS-1.0.pet


I have no training in programming,
yet I was able to get a functioning program to run.
So Zigbert's method has a lot going for it.

I think that high-level scripting will in the long-run
triumph over languages such as C.
__________________________________________________

puppy localization

Posted: Wed 30 Mar 2011, 11:55
by L18L
01micko wrote
I suppose what we need to do is apply the standards, that is, everyone who scripts should learn to use gettext and where the locale file should be stored. It's not difficult. Even I roughly learnt some of it!
+1 :)
And even our PuppyMaster did so, see http://murga-linux.com/puppy/viewtopic. ... &start=282 or do a search in his blog.
Note, the keyword is internationalisation or internationalization which is the step to be done before localization.

localization = translating messages, using date, time, paper, ... formats
internationalization = making a programm usable for localization

The standard is well documented here and can be used in puppy shell and BaCon.

Hope that helps, at least helps to let the discussion continue.

puppy localization

Posted: Thu 14 Apr 2011, 08:42
by L18L
Quoted from http://bkhome.org/blog/?viewDetailed=02213
anyone is welcome to submit more translations.

Re: puppy localization

Posted: Tue 03 May 2011, 23:22
by mcewanw
mavrothal wrote:I was trying to localize XOpup in Spanish the other day. Thanks to shinobar's and don570's work on puppy5.2 I had a good start.
Then I realized how much of puppy's UI and P_apps are hard coded in english. Few HUNDREDS distinct fields!!!

All over Xgialogs, gtkdialog3s and gtkdialog-splashes are in English, with no easy way to translate-one-use-everywhere. Eg you can do it for a given build but then with the next one you have to go all over again.
The other issue is, that a lot of P_apps are build in such a way that if you change the string the layout is getting all messed-up.
Yes, this is a major issue. I am guilty of this myself, and only just started looking into it for futureproof apps. As a start point I've purposively used "gettext" throughout my latest app Pcreole, though not worked more on that otherwise.

In terms of internationalisation of applications, the following website is probably of interest for all developers:

http://www.transifex.net/

Re: puppy localization

Posted: Mon 01 Apr 2013, 08:48
by L18L
01micko wrote:...The exception (for the moment) is zigbert's method...
gettext method is official now
and zigbert has his Mission completed

mavrothal
[SOLVED] now. Don't you think ? :D

Re: puppy localization

Posted: Mon 01 Apr 2013, 10:36
by mavrothal
L18L wrote:mavrothal
[SOLVED] now. Don't you think ? :D
I guess.
Although not in the "placing chaos" aspect....

Posted: Wed 03 Apr 2013, 01:21
by vicmz
The first post says you needed some translations in Spanish. If at present you still need some, you may be interested in this thread:

http://murga-linux.com/puppy/viewtopic.php?t=76948