phyver / GameShell

a game to learn (or teach) how to use standard commands in a Unix shell
GNU General Public License v3.0
2.13k stars 135 forks source link

feat(i18n): italian localization #87

Closed Mte90 closed 2 years ago

Mte90 commented 2 years ago

So we are starting to localize it in italian!

If you want to help reach me or contribute to my repo so we can review our localization each other! Se vuoi contribuire contattami o contribuisci al mio repo cosí possiamo revisionarci a vicenda! Screenshot_20220527_113804 Se hai notato errori nello screen ho giá sistemato...

Docs about localization: https://github.com/phyver/GameShell/blob/master/doc/i18n.md

The missions requires your help to be localized!

Per la revisione facciamola alla fine, prima traduciamo tutto cosí si fa prima

This PR is a WIP.

Mte90 commented 2 years ago

So as per today:

are localized thanks to all!

Are missing:

I can say that the game is half localized :-D

phyver commented 2 years ago

Oops, I forgot to tell you about this "hidden" feature: text files that are displayed are formatted to the width of the terminal. Paragraphs are defined as in the "flowed" email format: consecutive lines with trailing white spaces are part of the same paragraph. (This is quickly described in doc/mission.md, section "Note on missions' sh files".)

So, we have (using ~ for trailing spaces)

a paragraph with~
several~
consecutive lines~~
that end~
here

several independant
lines that do not
constitute a single
paragraph

Try running GameShell in a very wide terminal to see what happens.

(That's not very important and I myself forget about it from time to time. The only consequence is that your text files will be displayed verbatim...)

Mte90 commented 2 years ago

That's not a big problem (I noted the 80 char length) but I guess that we will do some tests when the localization is finished.

Mte90 commented 2 years ago

Actual status in progress:

Mte90 commented 2 years ago

I want to say thanks to @Anulo2 @wshield05 @maupao @ziriuz84 for the help with the localization that is now completed.

Now is time to review and everyone can do it from https://github.com/phyver/GameShell/pull/87/files, move the mouse on the right near the numer line, click on the + blue button on the line with the issue, I will do the commits with the fixes to speed up (you can do a PR if you prefer).

So @serhack it's your time for a review but others can join :-D

ziriuz84 commented 2 years ago

Faccio una considerazione: abbiamo fatto i titoli dei txt degli obiettivi tutti diversi. Non varrebbe la pena uniformarli?

Mte90 commented 2 years ago

Uniformato il titolo delle missioni e sistemate altre cose.

Mte90 commented 2 years ago

Just a CTA to everyone in this ticket, If I don't get any other revision until friday I will mark the PR as ready. So in the meantime just report on the various lines so I can do a single commit with all of them.

Mte90 commented 2 years ago

I suggest a squash commit to have all the translation in a single commit instead all of this.

Thanks to all I think that I will write something in italian on forum.linux.it or my blog about this project once get approved :-)

Maybe a new release so the localization is official?

Mte90 commented 2 years ago

Ping for the approval

phyver commented 2 years ago

Sorry, busy days...

I'm very happy this reached completion!

I'll try playing a game in Italian in the next few days, but I doubt I'll find more than Rodolphe, and I don't speak Italian.

Squashing this PR into a single commit might be good, but I don't know how git/github deals with contributors when you do that. Does it keep a list of individual contributors?

Also, don't forget to add your names (real names, github names, LUG name, or whatever) to the various README files.

Mte90 commented 2 years ago

Thanks for this review... I missed that lines.

I tested in Italian days ago and was working but I didn't tested all the missions. My guess is that only after is merged we will get more players also in Italian that can do some real playing.

rlepigre commented 2 years ago

@phyver I think in this case, since there are quite a few contributors, it is actually better to not squash, and then add the commits to the main branch with a merge commit. Otherwise, it might be hard to attribute credit where it is due.

@Mte90 it'd be great if you could edit the README.md and README-it.md files to add your names to the list of contributors. It might be best to add a section (e.g., after the "Mission contributors") with something like:

### Translation

#### Italian version

* Daniele Scasciafratte (@Mte90)
* ...

Including the names (or at least GitHub handle) of everyone that contributed to this MR.

After this, I think we are good for merging.

Mte90 commented 2 years ago

I added their names but I am missing @serhack, @michirod and @wshield05 (if want their real names in the list or I can put just the nicknames)

gioisco commented 2 years ago

I tried to start the game on Fedora 35 and I receive this message error when I execute start.sh

  ____                      ____  _          _ _
 / ___| __ _ _ __ ___   ___/ ___|| |__   ___| | |
| |  _ / _` | '_ ` _ \ / _ \___ \| '_ \ / _ \ | |
| |_| | (_| | | | | | |  __/___) | | | |  __/ | |
 \____|\__,_|_| |_| |_|\___|____/|_| |_|\___|_|_|

                             _
                           _/ \
          _               /    \
         / \_   __       /\/\  /\
        /    \ /  \     /    \/  \
       /\/\  /\    `--./.'-    `-.\
      /    \/  ' ^ _    _  _
    /\ ____..      YY  Y     _   |~  _
   /._/  _ \_        Y  Y   [_]--'--[_]
  / / .'/#\_ `-.    Y  YY   |'|""`""|'|
    .-_/#@##\  `\"" ' Y     | | /^\ | |
   " "'"''"/home/giovanni/Games/GameShell/missions/finding_files_maze/04_find_2/i18n/it.po:28:32: invalid control sequence
/home/giovanni/Games/GameShell/missions/finding_files_maze/04_find_2/i18n/it.po:28:77: invalid control sequence
/home/giovanni/Games/GameShell/missions/finding_files_maze/04_find_2/i18n/it.po:28:91: invalid control sequence
msgfmt: found 3 fatal errors
'"'''" '         |_|_|I|_|_|

Press Enter to continue.

I'm executing the game from the branch italian from the repository of @Mte90

[EDIT] I fixed this problem removing some escape characters:

[giovanni@giovanni GameShell]$ git diff
diff --git a/missions/finding_files_maze/04_find_2/i18n/it.po b/missions/finding_files_maze/04_find_2/i18n/it.po
index 4333c97..cc0b2aa 100644
--- a/missions/finding_files_maze/04_find_2/i18n/it.po
+++ b/missions/finding_files_maze/04_find_2/i18n/it.po
@@ -25,7 +25,7 @@ msgstr  "$MISSION_DIR/treasure-msg/it.txt"

 #, sh-format
 msgid   "Dummy mission '$DUMMY_MISSION' is required for mission $MISSION_NB ($MISSION_NAME)."
-msgstr  "La missione esempio '\$DUMMY_MISSION' è richiesta per la missione \$MISSION_NB (\$MISSION_NAME)."
+msgstr  "La missione esempio '$DUMMY_MISSION' è richiesta per la missione $MISSION_NB ($MISSION_NAME)."

 #, sh-format
 msgid   "The command 'man' is required for mission $MISSION_NAME.\n"
gioisco commented 2 years ago

Mismatch in mission 15. In the file missions/misc/02_nano_journal/goal/it.txt

Crea un file chiamato "storico.txt" nella tua cassa e scrivici
un breve messaggio.

but in missions/misc/02_nano_journal/i18n/it.po the real name required is "registro.txt", not "storico.txt"

msgid "journal"
msgstr "registro"
serhack commented 2 years ago

I added their names but I am missing @serhack, @michirod and @wshield05 (if want their real names in the list or I can put just the nicknames)

Just leave my nick :) Thanks for your work!

gioisco commented 2 years ago

Mismatch in mission 16. In missions/intermediate/02_alias_journal/goal/it.txt

Creare un alias "journal" in modo da editare il tuo file storico
ovunque tu sia.

but in missions/intermediate/02_alias_journal/i18n/it.po

msgid "journal"
msgstr "storico"

is expected the alias and the file named storico to complete the mission and not alias named journal as it is written in the goal. Different translation of "journal" compared to mission 15

gioisco commented 2 years ago

In the file missions/intermediate/02_alias_journal/gshrc/it.sh a translation is missing

Current file

# Questo file è caricato (o    in shell jargon) quando il gioco
# si avvia. Puoi usarlo per registrare alias (e altre cose)

My proposal

# Questo file è caricato (o "sourced" in gergo shell) quando il gioco
# si avvia. Puoi usarlo per registrare alias (e altre cose)
gioisco commented 2 years ago

Mismatch in mission 19. In the file missions/finding_files_maze/01_ls_cd/goal/it.txt

Trova la moneta di bronzo

In the missions/finding_files_maze/01_ls_cd/i18n/it.po

msgid "copper_coin"
msgstr "moneta_di_rame"
gioisco commented 2 years ago

Bug of line break in mission 22. The goal is viewed like this


  .-------------------------------------------------------------------------------------------.
 /  .-.                                                                                   .-.  \
|  /   \                                                                                 /   \  |
                                                         |    /| |
                                                       |\  | |/|
                                                                           | `---' |
      |       |anziano eremita smemorato di nome Servillus si è accampato in una 
                    |       | vecchio libro delle pozioni di cuoio.
      |       | nella grotta e aiutalo a ricordarsi la ricetta del suo famoso tè 
[...]

As you can see the file missions/pipe_intro_book_of_potions/01_head/goal/it.txt has different line terminator

[giovanni@giovanni GameShell]$ file missions/pipe_intro_book_of_potions/01_head/goal/*
missions/pipe_intro_book_of_potions/01_head/goal/en.txt: ASCII text
missions/pipe_intro_book_of_potions/01_head/goal/fr.txt: Apache Avro version 101
missions/pipe_intro_book_of_potions/01_head/goal/it.txt: Unicode text, UTF-8 text, with CRLF line terminators

How I fix

1) Open with vim missions/pipe_intro_book_of_potions/01_head/goal/it.txt 2) :set fileformat=unix 3) :wq 4) Fixed :)

  ,-------------------------------------------------------------------------------------------------------------------------------.
 (_\                                                                                                                               \
    |  Obiettivi missione                                                                                                           |
    |  ====================                                                                                                         |
    |                                                                                                                               |
    |  Un anziano eremita smemorato di nome Servillus si è accampato in una grotta con il suo vecchio libro delle pozioni di cuoio. |
    |  Vai nella grotta e aiutalo a ricordarsi la ricetta del suo famoso tè alle erbe.  
gioisco commented 2 years ago

Bug in mission 22. I don't know when the path $GSH_HOME/Montagna/ was created. Anyway, the files missions/pipe_intro_book_of_potions/01_head/i18n/it.po missions/pipe_intro_book_of_potions/02_tail/i18n/it.po missions/pipe_intro_book_of_potions/03_cat/i18n/it.po have a translation mistake

msgid   "$GSH_HOME/Mountain/Cave"
msgstr  "$GSH_HOME/Mountagna/Grotta"

and some of they have CRLF line terminator.

[giovanni@giovanni GameShell]$ file missions/pipe_intro_book_of_potions/*/i18n/it.po
missions/pipe_intro_book_of_potions/00_shared/i18n/it.po:         GNU gettext message catalogue, Unicode text, UTF-8 text, with CRLF line terminators
missions/pipe_intro_book_of_potions/01_head/i18n/it.po:           GNU gettext message catalogue, ASCII text, with CRLF line terminators
missions/pipe_intro_book_of_potions/02_tail/i18n/it.po:           GNU gettext message catalogue, ASCII text, with CRLF line terminators
missions/pipe_intro_book_of_potions/03_cat/i18n/it.po:            GNU gettext message catalogue, ASCII text
missions/pipe_intro_book_of_potions/04_pipe/i18n/it.po:           GNU gettext message catalogue, ASCII text, with CRLF line terminators
missions/pipe_intro_book_of_potions/05_pipe_head_tail/i18n/it.po: GNU gettext message catalogue, Unicode text, UTF-8 text, with CRLF line terminators

I don't know how to fix the mission 22. When I complete the task:

[mission 22] $ gc
realpath: /home/giovanni/Games/GameShell/World/Mountagna/Grotta: cannot access final dirname /home/giovanni/Games/GameShell/World/Mountagna
diff: /home/giovanni/Games/GameShell/World/Mountagna/Grotta/Libro_delle_pozioni: File o directory non esistente
Hai alterato il libro...

Spiacente, ma la missione 22 non é stata completata.
Mte90 commented 2 years ago

Fixed all the issue reported (about crlf there is the command dos2unix that does automatically).

Anyway instead to do multiple comments you can use the Files view of the pull requests and report the error in that line so there are less notifications.

Mte90 commented 2 years ago

Tested with the latest changes and now the tests are working!

phyver commented 2 years ago

In file i18n/gameshell-HELP, I removed (48e7592f) a reference to start.sh in command gsh exit. It now reads

gsh exit
  quit (and save) the current game

I just added (7860604f) an option -G to GameShell described in file i18n/start-help/en.txt

  -G      do not use gettext for translation (everything will be in English)
  -L ...

It might be worth checking if some other en.txt / *.po files have been modified since the beginning of this PR so that one of you can update the translations.

phyver commented 2 years ago

Oops, some commits weren't meant for this branch! I'll fix this when merging the PR.

I cannot comment on the Italian parts, but the rest looks good. So, someone should commit a translation for the gameshell-HELP and start-help Italian files, possibly check for other file to update. I guess it wouldn't hurt to have an outsider make a full run of GameShell in Italian.

I'll probably have to do some rebasing to remove the duplicate commits I made today, but I'll keep all the commit history.

Mte90 commented 2 years ago

Checked that files and others and I didn't saw other changes.

phyver commented 2 years ago

Any pending commit? Or plans for some work on this branch?

If not, I can try merging later this week.

Mte90 commented 2 years ago

It is ready for me :-)

phyver commented 2 years ago

merged into master! Congratulations to everyone and thanks for the amazing work!

Mte90 commented 2 years ago

So this pr can be closed.

phyver commented 2 years ago

Ah, yes. Github didn't realize the PR was merged, probably because I had to do some rebasing.