Internationalization of Fatdog64-700b2

For efforts in internationalising Puppy and solving problems in this area
Message
Author
User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

#16 Post by L18L »

jamesbond wrote:... in scripts "gettext" is another application, not a C function linked into the main executable (in which case it doesn't need to be exported). Same reason for gtk-server.
Thank you, now I also know why TEXTDOMAIN has to be exported.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#17 Post by jamesbond »

No worries.

So - what do you think of this:
jamesbond wrote:Note

Code: Select all

[ -z $TEXTDOMAIN ] && export TEXTDOMAIN=fatdog
causes
- TEXTDOMAIN becoming unchangeable.
On the contrary it means you can export TEXTDOMAIN=xxx before you launch the app and the app will use that "xxx" as the text-domain instead "fatdog". The question is, whether this is valuable enough functionality to justify modifying momanager for recognise it?
- momanager to not recognize the script as using gettext translations
As above.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

#18 Post by L18L »

jamesbond wrote:So - what do you think of this:
jamesbond wrote:Note

Code: Select all

[ -z $TEXTDOMAIN ] && export TEXTDOMAIN=fatdog
causes
- TEXTDOMAIN becoming unchangeable.
On the contrary it means you can export TEXTDOMAIN=xxx before you launch the app and the app will use that "xxx" as the text-domain instead "fatdog". The question is, whether this is valuable enough functionality to justify modifying momanager for recognise it?
- momanager to not recognize the script as using gettext translations
As above.
momanager uses find '^export TEXTDOMAIN='

The app needs a TEXTDOMAIN defined by the developer.
An app could use more than one TEXTDOMAINs.

If we had NOT defined the TEXTDOMAIN inside the script we would need an additional file containing all the scripts that use a TEXTDOMAIN.

I cannot see any good reason to export TEXTDOMAIN before launching the app.

That's all for now.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#19 Post by jamesbond »

Ok, "export TEXTDOMAIN" it is.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Internationalization of Fatdog

#20 Post by L18L »

Code: Select all

#!/bin/sh
# fhelp is fatdog's internationalized help
# each language in their own subdirectory linked back to original
#
# Austrian help starts at /usr/share/doc/help/de_AT/home.htm (if any)
# German   help starts at /usr/share/doc/help/de/home.htm (if any)
# English  help starts at /usr/share/doc/home.htm
#

for i in help/${LANG%.*}/ help/${LANG%_*}/ ""
do
  h_file=/usr/share/doc/${i}home.htm
  [ -f $h_file ] && break
done

#echo $h_file

defaulthtmlviewer file://$h_file
I have used this file (fhelp under /usr/local/bin) to start translation of home and some pages in faq.

@jamesbond
take it and change menu entry for help to "fhelp" please.

I have made translations directly in text editor geany:
Some notes, howto create these translations will follow. EDIT: done... see 9 posts down
Attachments
faq.png
(12.81 KiB) Downloaded 1031 times
help_de_1.tar.gz
see image for content
(5.96 KiB) Downloaded 565 times
Last edited by L18L on Mon 20 Jan 2014, 14:33, edited 2 times in total.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

Re: Internationalization of Fatdog

#21 Post by jamesbond »

L18L wrote:@jamesbond
take it and change menu entry for help to "fhelp" please.
Done, thanks, but Fatdog actually doesn't have a menu entry for "help". It is accessible directly from the browser's homepage. May be I should add one, hmmm ...
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

icake
Posts: 556
Joined: Fri 27 Jul 2012, 00:58

Fatdog Chinese Language pets

#22 Post by icake »

I am making new Chinese Language pets for fatdog64 630rc2 and runs into this challenge:

1. the starting menu at the lower left hand corner of the screen shows a fatdog logo with the word "Menu"
2. I think this is controlled by /etc/xdg/razor/razor-panel/panel.conf 2nd section [mainmenu] line 3:
English version: text=Menu
3. when I changed the above line to Chinese:
text=

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: Fatdog Chinese Language pets

#23 Post by L18L »

icake wrote:Does anyone know how to fix this?
Sorry, no idea how to fix this.
It is not specific to Chinese, just no UTF-8 support I think.

Code: Select all

[mainmenu]
showText=true
type=mainmenu
text=Menü
Attachments
menü.png
German menu which is Menü (last letter is u umlaut)
(2.35 KiB) Downloaded 1025 times

icake
Posts: 556
Joined: Fri 27 Jul 2012, 00:58

Internationalization of Fatdog

#24 Post by icake »

Here are my 2 cents input on how to tackle this UTF-8 label:

1. In a perfect world, /etc/xdg/razor/razor-panel/panel.conf should be able to print UTF-8 characters. It cannot. We can wait for the next version(s) and hope UTF-8 will be correctly shown soon.

2. We can recompile the program from source with UTF-8 enabled. However I do not think the effort is justified.

3. A temporary fix is to hide the label text (showtext=false) and replace the fatdog icon with a new icon with fatdog logo on the left and UTF-8 characters on the right, all in one image file. This requires the name of the file controlling what icon to print. I still cannot find this file and wonder whether someone might know the answer.

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

fatdog-control-panel

#25 Post by L18L »

/usr/sbin/fatdog-package-manager-library.awk and fatdog-control-panel.sh installed
(downloaded, moved to /usr/sbin and made executable)

Code: Select all

#!/bin/dash
# Fatdog Package Manager
# A puppy-compatible replacement for Puppy Package Manager
puppy-compatible sounds good.

Code: Select all

# fatdog-package-manager.sh
awk: Diese Option benötigt ein Argument -- »f«
BusyBox v1.22.0.git (2013-07-05 02:56:35 WIT) multi-call binary.

Usage: awk [OPTIONS] [AWK_PROGRAM] [FILE]...

	-v VAR=VAL	Set variable
	-F SEP		Use SEP as field separator
	-f FILE		Read program from FILE
Argument of -f is blanc, see

Code: Select all

#
# which fatdog-package-manager-library.awk
# 
Hope that helps

EDIT
Overriding "which"

Code: Select all

AWK_LIB=$(which fatdog-package-manager-library.awk)
AWK_LIB=/usr/sbin/fatdog-package-manager-library.awk
makes the error messages disappear but slows down performance.
:roll:

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

Re: Internationalization of Fatdog

#26 Post by jamesbond »

icake wrote:Here are my 2 cents input on how to tackle this UTF-8 label:

1. In a perfect world, /etc/xdg/razor/razor-panel/panel.conf should be able to print UTF-8 characters. It cannot. We can wait for the next version(s) and hope UTF-8 will be correctly shown soon.

2. We can recompile the program from source with UTF-8 enabled. However I do not think the effort is justified.
I can't answer this two. I've asked kirk.
3. A temporary fix is to hide the label text (showtext=false) and replace the fatdog icon with a new icon with fatdog logo on the left and UTF-8 characters on the right, all in one image file. This requires the name of the file controlling what icon to print. I still cannot find this file and wonder whether someone might know the answer.
I think the filename can't be changed (it's mainmenu.svg) but what you can change is the "theme". The default theme is "ambiance", you can copy the entire directory (in /usr/share/razor/themes), change the theme name (e.g. ambience-de), and tell razor-panel to use that theme in /etc/xdg/razor/razor.conf. Disclaimer: haven't tried it myself 8)
L18L wrote:Argument of -f is blanc, see
That's because you're supposed to chmod +x fatdog-package-manager-library.awk too. Or just override the stuff like you did - that should work too.
makes the error messages disappear but slows down performance.
Now this is annoying :cry: How much slower? Where is it slow (initial startup?).

EDIT:
puppy-compatible sounds good.
Yes, but you need to know which version of PPM it is compatible with :lol: - the very earliest one (puppy 4.x). In fact, Puppy's PPM is still in Fatdog, just run /usr/local/petget/pkg_chooser.sh and you'll be greeted with something very familiar :) (and it still works - whatever is installed by FPM can be uninstalled by PPM and vice versa).
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

kirk
Posts: 1553
Joined: Fri 11 Nov 2005, 19:04
Location: florida

#27 Post by kirk »

icake wrote:
Here are my 2 cents input on how to tackle this UTF-8 label:

1. In a perfect world, /etc/xdg/razor/razor-panel/panel.conf should be able to print UTF-8 characters. It cannot. We can wait for the next version(s) and hope UTF-8 will be correctly shown soon.

2. We can recompile the program from source with UTF-8 enabled. However I do not think the effort is justified.
I can't answer this two. I've asked kirk.
I removed all of the localization files from razorqt-panel, which is what we have normally done in the past since everything was english only and we try to keep things as small as possible. For Fatdog64-700 we will have to reconsider that. I've attached a pet with the razorqt-panel localization files. I just happened to still have that around. Hope that helps.
Attachments
int-1.0.pet
(92.16 KiB) Downloaded 516 times

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: Internationalization of Fatdog

#28 Post by L18L »

jamesbond wrote:
L18L wrote:Argument of -f is blanc, see
That's because you're supposed to chmod +x fatdog-package-manager-library.awk too. Or just override the stuff like you did - that should work too.
That's it. Has not been executable.
makes the error messages disappear but slows down performance.
Now this is annoying :cry: How much slower? Where is it slow (initial startup?).

Code: Select all

time populate_all_pkg
does not work. Therefore just the raw seconds:

AWK_LIB=$(which fatdog-package-manager-library.awk) :arrow: 15sec
AWK_LIB= :arrow: 5sec and error messages in console

But I do not see any difference in GUI output. :roll:

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: Internationalization of Fatdog

#29 Post by L18L »

L18L wrote:Some notes, howto create these translations will follow.
Or just a shell script (store it where ever you like or just paste it to terminal):

Code: Select all

#!/bin/sh
# create translation files for fatdog's home and faqs
# /usr/share/doc/home/htm must be translated first
# /usr/share/doc/faqs/faq.html must be translated secondly
# choose from faqs directory which one to translate

# functions 
go() { echo "
  $1
  Press ENTER to continue or Ctrl_C to cancel"; read x; }

create_file() {
  from=$1
  to=$2

  go "Convert $from to $to --to-code=UTF-8"
  iconv --from-code=ASCII --to-code=UTF-8 $from --output=$to

  go "Insert language and change charset to UTF-8"
  sed -i "s/<html>/<html lang="$L">/" $to
  sed -i 's/charset=ISO-8859-1/charset=UTF-8/' $to

  go "Set base for all links"
  sed -i "s#<head>#<head>${BASE}#" $to

  go "Some style"
  sed -i 's@</head>@<style type="text/css">#container {max-width:44em;margin:auto;} h1 img {height:100px;margin:0 2em -.1em 0;} h1 {text-align:center;}	.translated {text-align:right;font-size:67%;}</style></head>@' $to

  echo "Set link back to original"
  sed -i "s#</body>#<p class="translated">Translated from the <a href="$from">English Original</a></p></body>#" $to

  go "That's all I could do for you.

 Note, properties of this file is yet shown as ASCII, when you have entered the first non-ASCII word then it will be shown as UTF-8.

 The file $to will be opened in text editor geany now
 Happy translating"
 geany $to
}
# /functions 

L=${LANG%_*}
# create subdirs for language
for i in /usr/share/doc/help /usr/share/doc/faqs; do mkdir -p $i/$L; done

for i in /usr/share/doc/help/$L/home.htm /usr/share/doc/faqs/$L/faq.html; do
 [ -f $i ] && continue
 case $i in
   *home*) f=/usr/share/doc/home.htm; BASE='<base a href="../../">' ;;
   *faq*)  f=/usr/share/doc/faqs/faq.html BASE='<base a href="../">';;
 esac
 create_file $f $i
done  # home.htm and faqs/faq.html translated

cd /usr/share/doc/faqs
while true; do # translate one or some or all faq
  f=$1
  until [ `ls ${f}* | wc -w` -eq 1 ]; do
    echo ""; ls ${f}*.htm*; echo ""; read f
  done
  f=`ls ${f}*`
  BASE='<base a href="../">'
  create_file $f ${L}/$f
done # break endless loop by pressing Ctrl-C

cd - > /dev/null
You might
- translate line 30 (Translated from the <a href="$from">English Original</a>) to your language....
- change style
EDIT
- override an already translated file :cry:

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

Re: Internationalization of Fatdog

#30 Post by jamesbond »

L18L wrote:

Code: Select all

time populate_all_pkg
does not work.
No, of course not. This is dash we're talking about (bash is more versatile and can do that - dash can only "time" external commands and not internal functions).
Therefore just the raw seconds:

AWK_LIB=$(which fatdog-package-manager-library.awk) :arrow: 15sec
This is odd - "which" shouldn't take that long. You need to check your system. Anyway, I've hardcoded the location to /usr/sbin rather than doing 'which'.
But I do not see any difference in GUI output. :roll:
You're not supposed to see any difference. Only shorter delays. Which isn't happening too :cry:
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: Internationalization of Fatdog

#31 Post by L18L »

jamesbond wrote:
But I do not see any difference in GUI output. :roll:
You're not supposed to see any difference. Only shorter delays. Which isn't happening too :cry:
I mean the difference between
- using fatdog-package-manager-library.awk (using which or hardcoded) that is slow (15sec)
- using "" that is fast (5 sec)

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

Re: Internationalization of Fatdog

#32 Post by jamesbond »

L18L wrote:I mean the difference between
- using fatdog-package-manager-library.awk (using which or hardcoded) that is slow (15sec)
- using "" that is fast (5 sec)
No, that can't be. If AWK_LIB is blank then you will get an error and will see the visual differences immediately - your package list will be totally empty (only the categories). The only explanation is that somehow you're still accessing the old package manager, not the new one then.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: Internationalization of Fatdog

#33 Post by L18L »

jamesbond wrote: If AWK_LIB is blank then you will get an error and will see the visual differences immediately - your package list will be totally empty (only the categories).
Now I do see them. You are right. :oops:

icake
Posts: 556
Joined: Fri 27 Jul 2012, 00:58

Internationalization of Fatdog

#34 Post by icake »

jamesbond wrote:
I think the filename can't be changed (it's mainmenu.svg) but what you can change is the "theme". The default theme is "ambiance", you can copy the entire directory (in /usr/share/razor/themes), change the theme name (e.g. ambience-de), and tell razor-panel to use that theme in /etc/xdg/razor/razor.conf. Disclaimer: haven't tried it myself Cool
This is a much better and more realistic fix than my suggestion. Thanks jamesbond.
kirk wrote:
I've attached a pet with the razorqt-panel localization files. I just happened to still have that around. Hope that helps.
Thanks kirk.

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Re: Internationalization of Fatdog

#35 Post by L18L »

L18L wrote:
L18L wrote:Some notes, howto create these translations will follow.
Or just a shell script (store it where ever you like or just paste it to terminal):

Code: Select all

#!/bin/sh
# create translation files for fatdog's home and faqs
...
...
  create_file $f ${L}/$f
done # break endless loop by pressing Ctrl-C

cd - > /dev/null
You might
- translate line 30 (Translated from the <a href="$from">English Original</a>) to your language....
- change style
EDIT
- override an already translated file :cry:
Here is the improved script for the same purpose.

Code: Select all

#!/bin/sh
TITLE="Translate Fatdog's home and FAQs"
# /usr/share/doc/home/htm must be translated first
# /usr/share/doc/faqs/faq.html must be translated secondly
# choose from faqs directory which one to translate
#140123 avoid overriding, avoid no charset, adjust link in translated faq.html, 

function init_vars() {
  L=${LANG%_*} # Chinese and Portuguese might change this line

  for i in /usr/share/doc/help /usr/share/doc/faqs; do mkdir -p $i/$L; done

  TRANSLATED_FROM="Übersetzt aus dem" # Translate this to your language
  ENGLISH_ORIGINAL="Englischen Original" # Translate this to your language

  DEFAULTHTMLEDITOR="seamonkey -edit"
  DEFAULTHTMLEDITOR=geany # for experts
  #DEFAULTHTMLEDITOR=yudit # for 'right-to-left'-languages
}

function go() { echo "
  $1
  Press ENTER to continue or Ctrl_C to cancel"; read x; }

function choose_file() {
  tmp=/tmp/translate_faq$$	
  ALL_FILES=/tmp/translate_faq
  TODO=
  n=0
  ls *.htm* | tr ' ' '\n' > $ALL_FILES
  while read LINE;do
    [ `ls $L | grep $LINE` ] || { n=$(($n + 1)); TODO="$TODO $LINE $n"; }
  done < $ALL_FILES
  case $n in
    0) MSG="No file found, all translations appear to be done." ;;
    1) MSG="This is the last file to translate." ;;
    *) MSG="Choose ONE of these $n files to translate NOW." ;;
  esac
  dialog --title "$TITLE" --menu "$MSG" 0 0 12 `echo $TODO` 2> $tmp
  file_chosen=`cat $tmp`
  rm $tmp $ALL_FILES
}

function create_file() {
  from=$1
  to=$2

  go "Convert $from to $to --to-code=UTF-8"
  iconv --from-code=ASCII --to-code=UTF-8 $from --output=$to

  go "Insert language and change charset to UTF-8"
  sed -i "s/<html>/<html lang="$L">/" $to
  sed -i 's/charset=ISO-8859-1/charset=UTF-8/' $to
  sed -i 's/charset=windows-1252/charset=UTF-8/' $to
  grep 'meta http-equiv="content-type"' $to >/dev/null || sed -i 's#<head>#<head><meta http-equiv="content-type" content="text/html; charset=utf-8">#' $to

  go "Set base for all links"
  sed -i "s#<head>#<head>${BASE}#" $to

  go "Some style"
  sed -i 's@</head>@<style type="text/css">#container {max-width:44em;margin:auto;} h1 img {height:100px;margin:0 2em -.1em 0;} h1 {text-align:center;}	.translated {text-align:right;font-size:67%;}</style></head>@' $to

  go "Set link back to original"
  #sed -i "s#</body>#<p class="translated">Translated from the <a href="$from">English Original</a></p></body>#" $to
  sed -i "s#</body>#<p class="translated">${TRANSLATED_FROM} <a href="$from">${ENGLISH_ORIGINAL}</a></p></body>#" $to

  case  ${to} in
   *${L}/faq.html) : ;;
   *${L}/*.htm*)
    go "Set link to this page in 'index' page faq.html from ${to#*/} to $to
    Don't forget to also translate the link title in ${L}/faq.html"
    sed -i "s@${to#*/}@$to@" ${L}/faq.html ;;
  esac  

  go "That's all I could do for you.

 Note, properties of this file is yet shown as ASCII, when you have entered the first non-ASCII word then it will be shown as UTF-8.

 The file $to will be opened in $DEFAULTHTMLEDITOR now
 Happy translating"
 $DEFAULTHTMLEDITOR $to
}
# /functions 

init_vars

for i in /usr/share/doc/help/$L/home.htm /usr/share/doc/faqs/$L/faq.html; do
 [ -f $i ] && continue
 case $i in
   *home*) f=/usr/share/doc/home.htm; BASE='<base href="../../">' ;;
   *faq*)  f=/usr/share/doc/faqs/faq.html BASE='<base href="../">';;
 esac
 create_file $f $i
done  # home.htm and faqs/faq.html translated

cd /usr/share/doc/faqs
while true; do # translate one or some or all faq
  choose_file 
  BASE='<base href="../">'
  [ "$file_chosen" ] && create_file $file_chosen ${L}/$file_chosen || break
done # break endless loop by cancel in dialog
cd - > /dev/null

[ $n -gt 0 ] && echo "See you later, use just 
$0
in Terminal." || echo bye, hope you really did translate something.
#
Happy translating
Attachments
translate_home_and_faq.png
(11.86 KiB) Downloaded 736 times
Last edited by L18L on Thu 23 Jan 2014, 18:30, edited 1 time in total.

Post Reply