Ako jeden z mála prekladateľov obľúbenej CyanogenMod Romky som bol oslovený, či by som nepomohol dať dokopy krátky manuál ako prispieť k prekladu a všetky tie šamanské veci okolo toho.
Najhoršie pre našinca a niekoho neznalého základov linuxu je pochopiť celý ekosystém okolo verzovacieho systému GIT a schvaľovacieho procesu na báze Gerritu .
Preto sme s Martinom zo stránky droid.webnode.sk za pomoci Juraja a Petra (Prekladatelia CM) dali dokopy postup, akým by mal nádejný prekladateľ pokračovať krok za krokom pri nastavení systému potrebnému k prekladaniu.
Nasledovný postup bol bol vyskúšaný na Ubuntu 12.04 (Posledná a odporúčaná verzia)
1) Príprava a Sťahovanie repozitárov
Na čerstvo nainštalovanom ubuntu si spustíme tieto príkazy:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 g+±multilib mingw32 openjdk-6-jdk pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
Týmto do systému dostaneme základné nástroje pre prácu s verzovacím systémom GIT (https://github.com/) a schvalovacím Gerrit (review.cyanogenmod.org) .
Najdôležitejšie je sa zaregistrovať na stránkach GIT a Review CM.
Pričom je dôležité použiť pre obe rovnaký e-mail a zvoliť si rovnaké užívateľské meno !
Bez toho Vám nepôjde komittovať do systému. Odporúčam sa vyhnúť v užívateľskom mene diakritike a všeliakých špeciálnych znakov.
Prvé kroky by mali následovať ku konzole a k nastaveniam GIT-u:
V termináli si otvoríme ako bežný užívateľ:
git config –global user.name „Vaše užív. meno“
git config –global user.email „vas_email@kdekolvek.com“
Príklad:
git config –global user.name prekladysk
git config –global user.email prekladysk@gmail.com
Ďalej nastavíme ukončovanie riadkov, aby nám neskôr nehlásilo samé chyby ak budeme chcieť nahrávať nové súbory, alebo opravy do systému.
git config –global core.autocrlf input
git config –global core.safecrlf true
Viac o systéme GIT nájdete tu: GIT Imerssion (v angličtine)
Nastavíme si gerrit užívateľské meno pre GIT:
git config –global review.review.cyanogenmod.org.username
Príklad:
git config –global review.review.cyanogenmod.org.username prekladysk
Všimnite si, že je použité to isté užívateľské meno aj pre Git aj pre Gerrit (Dôležité! Ináč celý proces nebude fungovať korektne).
Ďalší krok je vygenerovanie SSH kľúčov.
V termináli zadáme:
ssh-keygen -t rsa -C „your@email.com“
Príklad:
ssh-keygen -t rsa -C prekladysk@gmail.com
Ak nechceme vlastný názov súboru stlačíme 3 x ENTER ⏎
Tieto následne pridáme do nášho SSH Agenta týmito príkazmi:
ssh-add ~/.ssh/id_rsa
ssh-add
Pri generovaní kľúčov si systém vypýta heslo aby mohol zašifrovať kľúč a vygenerovať verejný a súkromný kľúč. (Odporúčame použiť rovnaké heslo ako do systému, aby Vás to neskôr neprekvapilo, a žeby ste náhodou zabudli zmienené heslo).
Odporúčame reštartovať systém aby sa uplatnili zmeny.
Po reštarte sa prihlásime na stránky GIT-u a v sekcii nastavenia (account settings) v menu je položka SSH Keys . Po otvorení si potrebujeme pridať nový SSH kľúč. Urobíme tak stlačením tlačidla Add SSH Key. Vypĺňame dve položky Tittle (Názov, Napríklad: Kluc Notebook Ubuntu) a Key (Samotný obsah kľúča SSH) Ten nájdeme v domovskom priečinku užívateľa v skrytom priečinku .ssh/
Príklad:
/home/prekladysk/.ssh/id_rsa.pub
Pub znamená public, čiže verejný. Tento môžeme v pokoji vložiť na stránky GIT-u do položky Key. Obsah súboru je na ukážku asi takýto:
ssh-rsa AABBCC987sdf654df64so989...... atď
Proces dokončíme stlačením tlačidla Add key
Viac o generovaní kľúčov tu: Git SSH
Proces vkladania SSH kľúčov budeme musieť zopakovať tentokrát na stránke Gerrit-u.
V nastaveniach v menu nájdeme odkaz na SSH Public Keys . Pokračujeme stlačením tlačidla Add Key, kde vložíme opäť celý obsah súboru id_rsa.pub a dokončíme stlačením tlačidla Add.
V termináli sa presunieme do svojho domovského priečinku
Príklad:
cd /home/prekladysk/
Vytvoríme pracovné priečinky pre systém:
mkdir -p ~/bin
mkdir -p ~/android/system
Stiahneme a nastavíme práva pre repo binár:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Je potrebné opäť reštartovať systém aby boli vyššie uvedené zmeny použité.
Pre prvotné iniciovanie a synchronizáciu repozitárov spustíme následovné príkazy:
cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync -j16
( -b ics znamená že máme záujem o vetvu ICS , môžeme takisto použiť -b gingerbread , alebo -b jellybean )
Prvotná synchronizácia a sťahovanie repozitárov Cyanogen Módu bude v závislosti od pripojenia trvať od 50 minút až po niekoľko hodín. Celkovo sa sťahuje medzi 8 až 13 GB dát. V prípade pádu spojenia ktoré skončí chybou, sa ničoho nepoľakajte a v kľude spustite príkaz odznova. Nič sa nedeje, proces bude pokračovať ďalej.
Týmto sme dosiahli prvý milník a to, že máme všetko potrebné a aktuálne z GIT-u vo svojom počítači. Teraz nás čakajú tie príjemnejšie chvíle, čim myslíme preklady a pridávanie zmien.
2) Vytváranie / Pridávanie Zmien
Ak chceme pridať nový súbor, alebo viacero súborov do projektu, v termináli zadáme príkaz:
repo start
Príklad:
repo start ics apollo
Prípadne ak to zlyhá zadáme celú cestu:
Príklad:
repo start ics ./packages/apps/Apollo/res/values-sk/
Týmto začneme nový projekt na ktorom chceme pracovať.
Presunieme sa do pracovného adresára kde chceme urobiť zmeny. V našom prípade v aplikácií Apollo:
Príklad:
cd ./packages/apps/Apollo/res/values-sk/
Teraz môžeme začať robiť zmeny na súboroch. Teda napríklad strings.xml , kde sa nachádza slovenský preklad, alebo ak chceme vytvoriť komplet nový preklad.
Ak súbor ani priečinok neexistujú to znamená, že preklad nieje musíme vytvoriť priečinok values-sk a v ňom súbor strings.xml.
Ak sa nachádzame v priečinku values-sk a upravili sme súbor strings.xml, urobíme commit a pokúsime sa pridať zmenu na server. Pridávame tak, že prejdeme do pracovného adresára a zadáme príkaz repo upload a ďalej názov projektu, ktorý sme si zvolili na začiatku. Názov projektu je v tomto prípade dôležitý, kvôli tomu že môžeme súčasne pracovať na viacerých prekladoch naraz a ak by sme nezadali názov projektu, program odpošle všetky aj rozpracované projekty.
Príklad:
git add strings.xml
git commit ( Pridáme popis teda názov zmeny)
cd ~/android/system
repo upload ./packages/apps/Apollo/res/values-sk/ (potvrdzujeme y -yes )
Ak prvýkrát pridávate zmenu systém Vám vráti kommit a budete musieť ísť na stránku Gerrit-u a tam potvrdiť zmluvné podmienky pre vývojárov na tejto stránke:
http://review.cyanogenmod.org/#/settings/agreements
Potom opätovne urobiť repo upload.
Ak to všetko prebehne v poriadku na stránke Gerrit-u uvidíte svoj projekt čakajúci na schválenie.
Nájdeme kolónku kde zadáme ľudí, ktorí nám projekt skontrolujú a spoja s vetvou CyanogenMódu. Do okienka začneme zadávať meno a systém to sám doplní. Samozrejme nakoniec pridáme aj niekoho kto ma právo schvalovať zmeny a pridávať ich do systému. Zvyčajne Steve Kondik. Všetci títo vybraní sú e-mailom informovaný o zmenách ktoré chcete pridať do systému. Neplašte sa, niekedy trvá aj mesiac kým sa dostane Vaša zmena do funkčných buildov. Je to spôsobené hlavne malým počtom ľudí, ktorí vedia povoliť zmeny a samozrejme ich vyťažením.
3) Úprava Zmien / Patchset-y
Po tom čo sme pridali upravený súbor na server, skontrolujeme zmeny, ktoré sme vykonali. Ak sme našli v našom súbore nejakú chybu alebo nás na chybu upozorní niekto iný je potrebné opraviť chybné časti v súbore a znovu ho nahrať ako “Patchset”.
Presunieme sa do pracovného adresára:
Príklad:
cd ./packages/apps/Apollo/res/values-sk/
Príkazom git log vyhľadáme ID commitu a skopírujeme ho do schránky.
Príklad:
commit fbc5efc0c3bc3479f5e7f92c644bb8558745f42c
Author: PrekladySK <prekladysk@gmail.com>
Date: Sun Sep 2 11:33:51 2012 +0200
Príkazom git reset zrušíme zmeny, ktoré sme nahrali v pôvodnom súbore.
Príklad:
git reset fbc5efc0c3bc3479f5e7f92c644bb8558745f42c
Po zadaní príkazu git status by sa nám mal súbor, ktorý sme zrušili, zobrazovať červenou farbou.
Znova pridáme už opravený súbor a upravíme popis zmien, ktoré sme vykonali v commit mesage, ktorá sa nám zobrazí po zadaní druhého príkazu. Následne sa presunieme do hlavného adresára a nahráme zmeny na server.
Príklad:
git add strings.xml
git commit –amend (pridáme popis zmien napr. Patchset 2 : Removed whitespaces)
cd ~/android/system
repo upload ./packages/apps/Apollo/res/values-sk/ (potvrdzujeme y -yes)
Video YouTube :
http://www.youtube.com/watch?v=264lX3FEb3k&feature=youtu.be
Pracujem ako IT Admin v nie malej firme. (Novell, NewPS.sk)