Page 1 of 7

Posted: Sun 08 Feb 2009, 21:08
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.

Posted: Sun 08 Feb 2009, 22:10
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.

Posted: Sun 08 Feb 2009, 23:20
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

Posted: Sun 08 Feb 2009, 23:37
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

Posted: Mon 09 Feb 2009, 02:56
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)

Posted: Mon 09 Feb 2009, 16:10
by droope
COnnectio n wizard :) still a lot to go tho. And no time.

Posted: Mon 09 Feb 2009, 16:27
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

Posted: Mon 09 Feb 2009, 17:07
by esmourguit
Bonjour,
@Droope,
It seems you've done the same job on connect-wizard i does (see same forum on February 6).
Cordialement ;)

Posted: Mon 09 Feb 2009, 21:26
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.

Posted: Wed 11 Feb 2009, 08:27
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 ;)

Posted: Thu 12 Feb 2009, 03:29
by droope
Puppy remaster script :)

Posted: Fri 13 Feb 2009, 14:38
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

Posted: Fri 13 Feb 2009, 21:18
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

Posted: Fri 13 Feb 2009, 21:54
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 :)

Posted: Fri 13 Feb 2009, 22:39
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

Posted: Fri 13 Feb 2009, 23:23
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)

Posted: Fri 13 Feb 2009, 23:43
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

Posted: Sat 14 Feb 2009, 00:57
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

Posted: Sat 14 Feb 2009, 18:22
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.

Posted: Sun 15 Feb 2009, 07:32
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