i18n / internationalisation

User avatar
moredruid
Expert
Posts: 791
Joined: Tue Jan 20, 2009 1:33 am
Location: Netherlands
Contact:

i18n / internationalisation

Postby moredruid » Mon Feb 16, 2009 1:45 am

Edit - this thread is consolidating in the wiki page Translate Amahi
----

I'm not sure if there's any interest in internationalising the amahi stuff, but I think it's a good idea to get users to switch or use amahi. It's just easier if you can do stuff in your native language (except for the installer maybe, that would be overkill ;) )

anyone comments?

I can do a translation to Dutch, German (somewhat clunky but better than nothing at all :) ), and French (also somewhat clunky, but good enough as well).
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D2173656C7572206968616D41snlbxq' | dc
Galileo - HP Proliant ML110 G6 quad core Xeon 2.4GHz, 4GB RAM, 2x750GB RAID1 + 2x1TB RAID1 HDD

User avatar
cpg
Administrator
Posts: 2618
Joined: Wed Dec 03, 2008 7:40 am
Contact:

Re: i18n / internationalisation

Postby cpg » Mon Feb 16, 2009 6:34 am

I'm not sure if there's any interest in internationalising the amahi stuff, but I think it's a good idea to get users to switch or use amahi. It's just easier if you can do stuff in your native language (except for the installer maybe, that would be overkill ;) )

anyone comments?

I can do a translation to Dutch, German (somewhat clunky but better than nothing at all :) ), and French (also somewhat clunky, but good enough as well).
absolutely! great idea!

we may prepare this to transition to rails 2.2, which has localization support included with little effort.

for the time being, here is the en-US set of sentences to translate (in a format called yml, ready for rails 2.2)

http://git.amahi.org/?p=amahi.git;a=blo ... 3d;hb=HEAD

(that's formatted) the raw file is at

http://git.amahi.org/?p=amahi.git;a=blo ... ml;hb=HEAD

basically what the translation consists of is this
  • duplicate an original file, change the name to something appropriate (e.g. de.yml)
  • change the strings after the colon to the end of the line for the new language.
that's it! you can do it by cut and paste or with git:

Code: Select all

git clone git://git.amahi.org/amahi.git cd amahi/platform/platform/html/config/locales cp en-US.yml de.yml [edit the file] git add de.yml git commit de.yml
then note of the commit ID to generate a patch in email that will be submitted, with attribution and all, via git!
My HDA: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz on MSI board, 8GB RAM, 1TBx2+3TBx1

obnox
Posts: 6
Joined: Mon Jan 12, 2009 4:29 pm

Re: i18n / internationalisation

Postby obnox » Mon Feb 16, 2009 7:23 am

Some hints to git usage and to getting your work published

You have to be aware of the fact that "git clone" created a local clone of the remote git repository for you. You have full commit access to that local repository. When you did "git commit" then you have created a new commit locally, on your machine.

Note that if you intend to get your commits upstream, then you should include something like the following in your ~/.gitconfig (or <cloned-repo-dir>/.git/config) file in order to get authorship right:

Code: Select all

[user] name = Your Name email = your@email.address
This information will appear in the git log in the author section as:
"Author: Your Name <your@email.address>"

There are several ways to communicate your patches to the outside, i.e. to ultimately get your work upstream, which means into cpg's master repository:
  • Publish your git repository somewhere on the web (e.g. http://repo.or.cz/ offers free git hosting, this is related to the creators of git. here is a list of other hosting services: http://git.or.cz/gitwiki/GitHosting.) Then tell cpg about your repo. He can then evaluate and pick/merge your changes into his repository.
  • Use git format-patch to format one or more patches and send them to cpg or put them on webspace for download.
    These can be applied by cpg using "git am <patchfile(s)>".
    You can format only the latest patch using

    Code: Select all

    git format-patch HEAD^..HEAD
    or more generally a single commit specified by the hash HASH using

    Code: Select all

    git format-patch $HASH^..$HASH
    When you specify a range of commits from HASH1 to HASH2 with

    Code: Select all

    git format-patch $HASH1^..$HASH2
    then you will get one file for each commit, file names prefixed by numbers 0001-....patch, 0002-...patch , and so on. For multiple patches it is more convenient to store all these in one mbox file:

    Code: Select all

    git format-patch --stdout $HASH^1..$HASH2 > my-patchset.mbox
    Your patches can be applied by cpg using

    Code: Select all

    git am <patchfile(s)>
    See "git format-patch --help" and "git am --help" for options.
  • Finally, the command

    Code: Select all

    git send-email
    offers a convenient way to combine git format-patch and sending out email. See "git send-email --help" for options.
It is a good habit to "git fetch" and "git rebase origin/master" before submitting your patches. This way you make sure your patches apply on top of the current upstream branch, and you will possibly do conflict resolution work that otherwise other people would have to do for you... ;)

Cheers - Michael

obnox
Posts: 6
Joined: Mon Jan 12, 2009 4:29 pm

Re: i18n / internationalisation

Postby obnox » Mon Feb 16, 2009 7:32 am

BTW: I might go for a german translation - can there be UTF8 chars in that de.yml file?

obnox
Posts: 6
Joined: Mon Jan 12, 2009 4:29 pm

Re: i18n / internationalisation

Postby obnox » Mon Feb 16, 2009 9:00 am

Here is a git-formatted patch of an initial german translation...

WOW this was tough, I tried a few 1000 times to get an extension that the forum would accept.
Why does it not accept .patch, .txt, ... attachments.
Attachments
add-local-german.patch.tar.gz
git-formatted patch of adding de.yml
(1.36 KiB) Downloaded 328 times

User avatar
moredruid
Expert
Posts: 791
Joined: Tue Jan 20, 2009 1:33 am
Location: Netherlands
Contact:

Re: i18n / internationalisation

Postby moredruid » Mon Feb 16, 2009 11:08 am

uhmm, not exactly sure what git is and all, but can I download the file and just edit it and upload it to the board so cpg or some other kind soul can upstream it? pleaaaase??? pretty pretty please with sugar on top and a cup of coffee aside??? ;)
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D2173656C7572206968616D41snlbxq' | dc
Galileo - HP Proliant ML110 G6 quad core Xeon 2.4GHz, 4GB RAM, 2x750GB RAID1 + 2x1TB RAID1 HDD

User avatar
moredruid
Expert
Posts: 791
Joined: Tue Jan 20, 2009 1:33 am
Location: Netherlands
Contact:

Re: i18n / internationalisation

Postby moredruid » Mon Feb 16, 2009 11:53 am

what the heck:
plain file taken & edited on a linux box (so no issues with DOS2UNIX :) )

uhmm I've escaped 1 ' (single quote) with a \, I'm not sure if this is needed in ruby (in PHP it is).
Attachments
add-local-dutch.patch.tar.gz
Dutch i18n
(1.04 KiB) Downloaded 324 times
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D2173656C7572206968616D41snlbxq' | dc
Galileo - HP Proliant ML110 G6 quad core Xeon 2.4GHz, 4GB RAM, 2x750GB RAID1 + 2x1TB RAID1 HDD

obnox
Posts: 6
Joined: Mon Jan 12, 2009 4:29 pm

Re: i18n / internationalisation

Postby obnox » Mon Feb 16, 2009 1:00 pm

git is a source code management (scm) system, just like cvs or svn (subversion). git is the source code management system developed (initially) by Linus Torvalds for managing the Linux Kernel Source code. See http://git.or.cz/.

A source code management system adds a history to your source code. Each change is "commited" and then such a commit has a date, and author, a diff to the previous state of the source tree, a commit message explaining the change, and so on. The source code history is then the chronologically ordered series of commits. This allows you to easily roll back changes.

To get an idea, you can browse the source code and the history on the web here: http://git.amahi.org/?p=amahi.git

But unlike the more traditional SCM systems cvs and svn, git follows a decentralized approach. In this respect it is more like bazaar (bzr) and mercurial (hg). Decentralized means, that there is not one central server to which you need to be connected in order to commit your changes, but you clone the repository and work locally instead. The mainainer of the official branch also commits locally and then pushes his changes to the upstream repository. A contributor can publish his changes in the ways detailed in a previous post (email or a private repository), and the maintainer of the upstream repository can pick his changes and push them upstream. The advantage is that in contrast to cvs and svn, authorship of the commits is kept when picking changes, i.e. you do neo need to have commit access to the central repository in order to appear as an author in the central repository's history... :ugeek:

@moredruid: is this sort of what you wanted to hear?

User avatar
cpg
Administrator
Posts: 2618
Joined: Wed Dec 03, 2008 7:40 am
Contact:

Re: i18n / internationalisation

Postby cpg » Mon Feb 16, 2009 2:10 pm

excellent!!

i have committed the two patches!

for the dutch one, i did not put moredruid's email there, since i don't like to leak emails to spammers.

now i need to make it work with proper localization in rails. the work is this: in current 2.1 rails, there is no localization and that has to be done via some plug-in. in 2.2, localization is included out of the box, however, the amahi interface does not work with rails 2.2 (lots of little issues). plus the installer needs to be changed to install that version for everyone.

ah, and i should probably do the spanish translation ;)

thanks much guys!
My HDA: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz on MSI board, 8GB RAM, 1TBx2+3TBx1

User avatar
moredruid
Expert
Posts: 791
Joined: Tue Jan 20, 2009 1:33 am
Location: Netherlands
Contact:

Re: i18n / internationalisation

Postby moredruid » Mon Feb 16, 2009 4:39 pm

obnox, thank you for the great explanation!

basically I know what git/cvs/svn etc. is, I just never used it, and never had the need to use it and there's so many fun things to discover for me yet that I haven't given it any priority.

I'm basically a sysadmin who can throw together some quick & dirty scripting that works most of the time, but haven't had the opportunity to properly code a nice portable script (too lazy to define $ENV, $PATH etc, just include what I need if something doesn't work out of the box) :roll:

one of my first IT teachers told me a good sysadmin is lazy (so you automate repetitive tasks, keep some basic scripts around that you can edit as needed for the task) and by that logic I am a very good sysadmin :lol:

However I do want to practice proper procedure, it's just that currently I'm too busy at work to make my code look better (results count more for management than the way you've obtained them).
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D2173656C7572206968616D41snlbxq' | dc
Galileo - HP Proliant ML110 G6 quad core Xeon 2.4GHz, 4GB RAM, 2x750GB RAID1 + 2x1TB RAID1 HDD

Who is online

Users browsing this forum: No registered users and 60 guests