Localizing scripts

For efforts in internationalising Puppy and solving problems in this area
Post Reply
Message
Author
User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#16 Post by droope »

Hi there maddox:

I don't think i have the moral authority to answer to that post :P And that is a really fancy way of saying, I don't know what to say. I guess there could be an issue with those, yes.


Ondevelop:

My script is acting weird, I've just started, but heres what I changed.
connectwizard.mo (es) wrote:$DIALUP="Internet by turtle..."
connectwizard 4.1.2 wrote:#-- simple localization for scripts by MU
mo=conectwizard.mo
lng=`echo $LANG | sed "s/\(..\).*/\1/"`
#echo $lng
. "/usr/share/locale/en/LC_MESSAGES/$mo"
if [ -f "/usr/share/locale/$lng/LC_MESSAGES/$mo" ];then
. "/usr/share/locale/$lng/LC_MESSAGES/$mo"
fi
And:
the same file, later on wrote: <label>${DIALUP}</label>

And the weird behaviours are:

number 1: When I click on the script with rox, nothing happens. When I open a console there and run it, it works :/

Number 2: The text is not changing, I am using ES_es locales, and the mo file is located in /usr/share/locales/es/LC_MESSAGES/ ... :/


Could I get a hand? Sorry for all the newbieing. :) Thanks


EDIT:

DOH!!! (homer style) I had localized a part of the script that was comented out. :P Now it still won't work, I've edited my post to correct the horror i had done.

maddox
Posts: 454
Joined: Fri 28 Sep 2007, 20:37
Location: sometimes in France

#17 Post by maddox »

Hi droope,
For the Rox problem, your file is probally not executable, right-click on the file in Rox and choose File -> Properties ...Tick all 3 Execute boxes.
An executable script needs this 1st line for it to run : #!/bin/bash
If your script doesn't use any X boxes (yaf-splash, xmessage/gxmessage), the console will just flash by, no time to see any messages.
But if you want to see what's happening, you'll have to run it from a console anyway.

For the locale problem: normally locales are like this -> fr_FR ... lowercase underline UPPERCASE
so I suppose yours should be -> es_ES and not ES_es

connectwizard.mo (es) wrote:
$DIALUP="Internet by turtle..."
Internet by turtle... -> this should be in your language, it's the translation
check your po file

Hope this helps you.

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#18 Post by MU »

droope wrote:My script is acting weird, I've just started, but heres what I changed.
connectwizard.mo (es) wrote:$DIALUP="Internet by turtle..."
Must be:

Code: Select all

DIALUP="Internet by turtle..."
When you assign a value to a variable, it must not have the leading $.
Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#19 Post by MU »

maddox,
1: If Puppy is going to be completely translated, i.e. all scripts will use gettext and po files,
Could there be a problem, kernel or other wise, using so many extra variables for translation (a limit to the nber of variables used) and also could this impact Puppy's performance ?
In Muppy I had no problems yet concerning this.
2: Has the community set-up any standard rules/guidelines to localise variables in a script : i.e preset variable names inside scripts or rules to define the variable names for translation.
No.
However it does not matter, as every program uses an own mo file, there is no "central" mo used by more than one script.

The process is basically, that one starts to localize a script.
He will first create the english mo file.
It then has all the required variables, that other translators can use for translated mo files.
3: What do you do about a Title, Label, Button or other forgotten bits that have no translation in a script ?
i.e. <button OK> or button cancel or Title ...dialup modem, MB/KB to Mo/Ko ..
Dialog itself has a mo file to translate "yes", "no" and similar.
But I think it is not included in Puppy.
I attach a "full" dialog with translations.
For custom texts, that are used later in a condition, it is a problem though.
Here we had to keep the english text, or rewrite the conditions somehow.
This would require a non-trivial rewrite of the script :?
4: Can All the text messages be translated with a po file in any script ? (except of course initrd.gz : language specific manual translation must be done)
i.e... echo "blabla" > /dev/console or echo "blabla" > 2&1
and indirectly, does X have to be running for gettext to work ?
My simple approach does not require gettext :)
Translation part:
5: Has anybody found an equivalent to yaf-splash ?
As it only correctly displays english characters, no matter what the encoding used.
In Muppy and Newyearspup I use a wrapperscript that invoques gxmessage:

Code: Select all

#!/bin/bash

XMESSAGE="gxmessage -encoding UTF-8"

text=`echo $@ | sed -e "s/.*-text \(.*\)/\1/"`
#echo "$text"

a=`echo $@ | sed -e "s/-bg pale /-bg /" -e "s/-placement [^ ]* //" -e "s/-outline [^ ]* //" -e "s/-margin [^ ]* //" -e "s/-text .*//"`

#echo $a

exec $XMESSAGE -center -buttons "" -borderless $a "$text"
It covers most, but not all the usage of yaf-splash in Puppy.
So far, enough to use it in those pupletts.
6: Dialog doesn't seem to like accents -> shutdown/save script and others
The displayed box has holes punched in it using accents (incorrectly displayed) and the right edge is completely distorted.
In Muppy, I used a newer version from Slackware.
I attach it, please try that one.
I did not check it in Puppy itself, so I hope it has no missing dependencies.
Backup your savefile first!
7: UTF-8 in general:
For serious localization, Puppy needs to use UTF-8.
The newer kernels activate utf-8 by default.
In Muppy 0084c4 that worked fine.
For older kernels, ugly backports had to be written, to use a mix of ISO and UTF-8.
I know no simple solution for that.
But this basically just concerns initrd.gz (init), and one or 2 other files (I think /etc/rc.d/rc.shutdown, as it runs with dialog in console).

In the Muppy-buildsystem, I added a condition:
for new kernels, copy a UTF encoded file, for old ones, a ISO encoded file.

Mark
Last edited by MU on Mon 09 Feb 2009, 04:02, edited 2 times in total.
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

maddox
Posts: 454
Joined: Fri 28 Sep 2007, 20:37
Location: sometimes in France

#20 Post by maddox »

Hi MU,
Thanks for all that VERY usefull info, it will be relayed back into Toutou and put into practice.
Will keep you informed about your yaf-splash and Dialog work-arounds ;)

The complete UTF-8 way (KERNEL and UTF-8 compatible programs) is really the right road from now on, just look at the numerous Puppy translations available.
- Most of the other (non english) Puppy translations had to recompile the kernel with UTF-8 support for simple things like fat/vfat bindings and other hitches :
.. nls_cp437 (english only) and nls_iso8859-1 (doesn't include all world languages) .. Then modify the "init" script accordingly and add the nls_utf8 file.

UTF-8 might slow Puppy down as characters could be multi-byte encoded, depends on the language used.
But it will have the added advantage of easier Puppy translation to many foreign languages (no need to change the script encoding)

Thanks for the positive info about the po/mo question. (nber 1)

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#21 Post by droope »

COnnectio n wizard :) still a lot to go tho. And no time.
Attachments
connectwizard.tar.gz
(2.55 KiB) Downloaded 790 times

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#22 Post by droope »

Great news! net-setup.sh already was localized.

By dougal.

So there, I declare the networking localized, even tho there is still the dialup.

Puppy universal installer is the one to go next, tho i think it'll take a year or two :P

User avatar
esmourguit
Posts: 1410
Joined: Fri 17 Nov 2006, 14:45
Location: Entre l'ile aux oiseaux.et l'ile de sainte Lucie

#23 Post by esmourguit »

Bonjour,
@Droope,
It seems you've done the same job on connect-wizard i does (see same forum on February 6).
Cordialement ;)
[url=http://moulinier.net/][color=blue][b]Toutou Linux[/b][/color][/url] - [url=http://toutoulinux.free.fr/pet.php][color=blue][b]Paquets français[/b][/color][/url]

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#24 Post by droope »

Well, at least I am a programming beast now :P (?)

I thought that wasn't complete? :(

Well, mine or yours, it's the same. The good thing is that dougal localized net-setup, WHIch is HUGE, extremely long. I love dougal, I'd be mad by now.

I' think that localizing puppy universal installer would be usefull.I'll do it, when i feel like doing it (too tired now), if you want to do it, feel free, but please MP or post it. :)

I think we'll be done in no time.

User avatar
esmourguit
Posts: 1410
Joined: Fri 17 Nov 2006, 14:45
Location: Entre l'ile aux oiseaux.et l'ile de sainte Lucie

#25 Post by esmourguit »

Bonjour,

@ droope,
I am trying to complete xorgwizard, but i have some issues.
I let you work on Puppy Installer.
I'll make a list of scripts to be localized and submit it to the community.

Cordialement ;)
[url=http://moulinier.net/][color=blue][b]Toutou Linux[/b][/color][/url] - [url=http://toutoulinux.free.fr/pet.php][color=blue][b]Paquets français[/b][/color][/url]

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#26 Post by droope »

Puppy remaster script :)
Attachments
REMASTERSCRIPT.tar.gz
(9.15 KiB) Downloaded 759 times

User avatar
esmourguit
Posts: 1410
Joined: Fri 17 Nov 2006, 14:45
Location: Entre l'ile aux oiseaux.et l'ile de sainte Lucie

#27 Post by esmourguit »

Bonjour,

For anyone who wants to test, here are /usr/sbin/xorgwizard and /usr/X11R7/bin/xwin localized as they have relations. I have tried to localize /etc/rc.d/functions4puppy4, but I am not able to.
There are also the english and french .mo files, for both.
There are 2 issues in xwin : line 482 and 490. If somebody wants to fix.

@Droope,
I've found an issue in your puppy remaster script. Is the file you've joined the good one?

Cordialement ;)

Edited by esmourguit feb 19 - 03:14 PM: below updated files
Attachments
xwin-420loc.tar.gz
(8.91 KiB) Downloaded 1290 times
xorgwizard420-loc.tar.gz
(24.05 KiB) Downloaded 782 times
Last edited by esmourguit on Wed 18 Feb 2009, 14:15, edited 2 times in total.
[url=http://moulinier.net/][color=blue][b]Toutou Linux[/b][/color][/url] - [url=http://toutoulinux.free.fr/pet.php][color=blue][b]Paquets français[/b][/color][/url]

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#28 Post by MU »

esmourguit wrote: There are 2 issues in xwin : line 482 and 490. If somebody wants to fix.
Please explain it in detail.

482 looks ok:

Code: Select all

   if [ ! "$NEWLANG" = "$LANG" ];then
490: is an empty line, the last one in the script.

Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#29 Post by droope »

Darn :( didn't get that error the last time i tried it. :/

But yes, that's the finished version. Every time i try to fix it i think i break it further. Perhaps mu... :P

I'm sure it's just something i deleted, or something. (Thanks esmorguit for testing it!!)

The file is above,

Image

Here is a screenshot of the error.

And the console error:

This i got the second time:
/root/NewDir/NewDir/remasterpup2: line 49: kill: (15246) - No such process
SIZETOTALM=424
cat: /tmp/tag.txt: No such file or directory
/root/NewDir/NewDir/remasterpup2: line 50: 16841 Terminated Xdialog --wrap --title "${L_CALCULATINGT}" --msgbox "${L_CALCULATING}" 0 0
SIZETOTALM=424
cat: /tmp/tag.txt: No such file or directory
I get a diferent error every time :/ If someone can help me it would be great :)

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#30 Post by MU »

droope,

line 110

Code: Select all

 echo -n "${L_CHOOSEDRIVE}" 0 0 5 " >> /tmp/savedlg
must be:

Code: Select all

 echo -n "${L_CHOOSEDRIVE}\" 0 0 5 " >> /tmp/savedlg
:)

Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#31 Post by droope »

Thanks, that solved line 110 :)

But now, after i go through the screenshot's window, i get a weird thing:

Code: Select all

Xdialog v2.3.1 by Thierry Godefroy <xdialog@free.fr> (v1.0 was
written by Alfred at Cyberone Internet <alfred@cyberone.com.au>).
Xdialog home page available at: http://xdialog.dyns.net/

Usage: Xdialog [<common options>] [<transient options>] <box option> ...

Common options:
  --wmclass <name>
  --rc-file <gtkrc filename>
  --backtitle <backtitle>
  --title <title>
  --allow-close | --no-close
  --screen-center | --under-mouse | --auto-placement
  --center | --right | --left | --fill
  --no-wrap | --wrap
  --cr-wrap | --no-cr-wrap
  --stderr | --stdout
  --separator <character> | --separate-output
  --buttons-style default|icon|text

Transient options:
  --fixed-font
  --password (may be repeated 2 or 3 times before --2inputsbox or --3inputsbox)
  --password=1|2 (for --2inputsbox or --3inputsbox)
  --editable
  --time-stamp | --date-stamp
  --reverse
  --keep-colors
  --interval <timeout>
  --timeout <timeout> (in seconds)
  --no-tags
  --item-help (if used, the {...} parameters are needed in menus/lists widgets)
  --default-item <tag>
  --icon <xpm filename>
  --no-ok
And it goes on and on..


Console tells me that:

Code: Select all

/tmp/asd/remasterpup2: line 49: kill: (1660) - No such process
SIZETOTALM=443
WKGPART=sda1
(the number of the process changes)

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#32 Post by MU »

hm, for me, it works here.
I run it like this
cd /root/tests/xwin-localized
./remasterpup2


Maybe you must not run it from /tmp/.

What you can do, is to add echo statements (debug-messages), so that you see, where in the code the script currently is.

Like for example around line 33:

Code: Select all

#choose where to create isolinux-builds/ directory...
Xdialog --wrap --left --title "${L_WELCOMET}" --msgbox "${L_WELCOME}" 0 0

Code: Select all

 echo "------------------TEST 1"
#choose where to create isolinux-builds/ directory...
Xdialog --wrap --left --title "${L_WELCOMET}" --msgbox "${L_WELCOME}" 0 0
 echo "------------------TEST 2"
Like this you will find out, where the script stopped.
If the Xdialog (line 35) would have an error, the last thing you would see would be:

------------------TEST 1

So you know, that the error is in line 35.


The long error you got, shows, that a line with "Xdialog" is working wrong.
Certainly again a " instead of \".
This is a very common mistake, that also often happens to me.

Mak
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#33 Post by droope »

No, mine isn't working. :( It's a really weird mistake, it happens after selecting the drive.


I'll give further effort to it tomorrow.

Cheers, and thanks a lot
MU

User avatar
esmourguit
Posts: 1410
Joined: Fri 17 Nov 2006, 14:45
Location: Entre l'ile aux oiseaux.et l'ile de sainte Lucie

#34 Post by esmourguit »

Bonjour,
@droope,
Here is the remasterpup script localized almost finished.
But there is one large issue with the "custom-puppy" variable (line 478).

All is OK until the iso file creation.
I don't know how to resolve it.
Maybe someone can help?

@ MU,
I have modified script as you said and uploaded the new one (in this post), but still issue when creating iso file.
Seems the line 478 below has no effect
rxvt -bg orange -title "${L_WELCOMET}" -e mkisofs -D -R -o $WKGMNTPT/custom-puppy-$PUPPYVERSION.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $WKGMNTPT/puppylivecdbuild/
Cordialement ;)

updated remasterpup2_420_LOC.tar.gz on feb 17. Needs ntfs fix.
Attachments
remasterpup2_420_LOC.tar.gz
(13.28 KiB) Downloaded 1546 times
Last edited by esmourguit on Tue 17 Feb 2009, 07:49, edited 2 times in total.
[url=http://moulinier.net/][color=blue][b]Toutou Linux[/b][/color][/url] - [url=http://toutoulinux.free.fr/pet.php][color=blue][b]Paquets français[/b][/color][/url]

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#35 Post by MU »

esmourguit

at first look I see nothing problematic, except line 475:

Code: Select all

 Xdialog --wrap --left --title "${L_WELCOMET}" --yesno "${L_CLICKYES} 'custom-puppy-${PUPPYVERSION}.iso' ${L_CLICKYES1} ${WKGMNTPT}/ ${L_CLICKYES2} ${WKGMNTPT}/${L_PLCDB}/ ${L_CLICKYES3}" 0 0

Here you use ' instead of ".

So it should be:

Code: Select all

 Xdialog --wrap --left --title "${L_WELCOMET}" --yesno "${L_CLICKYES} "custom-puppy-${PUPPYVERSION}.iso" ${L_CLICKYES1} ${WKGMNTPT}/ ${L_CLICKYES2} ${WKGMNTPT}/${L_PLCDB}/ ${L_CLICKYES3}" 0 0
Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

Post Reply