Localization/Library: Difference between revisions

From OLPC
Jump to navigation Jump to search
(reworked table and google-translated to portuguese... need a PT reviewer! :))
m (Reverted edits by Shit for brains (Talk); changed back to last version by 200.40.84.66)
 
(32 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== Table format ==
== Navigation sidebar ==


''[[/sidebar|sidebar table]]'': {{:Localization/Library/sidebar}}
{|
|-
| '''OLPC Library''' || '''Biblioteca OLPC''' || '''Biblioteca de OLPC'''
|- style="background:#f78f1e"
| books & reference || libros & referencia || livros & referência
|- style="background:#f2dba2"
| children's books || libros para chicos || livros das crianças
|- style="background:#f2dba2"
| encyclopedia || enciclopedia || enciclopédia
|- style="background:#f2dba2"
| literary classics || clásicos literarios || clássicos literários
|- style="background:#f2dba2"
| lessons || lecciones || lições
|- style="background:#6ebe46"
| math & science || matemáticas & ciencias || matemática & ciência
|- style="background:#c0ef92"
| biology || biología || biologia
|- style="background:#c0ef92"
| math & logic || matemáticas & lógica || matemática & lógica
|- style="background:#0092cf"
| images & maps || imágenes & mapas || imagens & mapas
|- style="background:#cae1e8"
| nature || naturaleza || natureza
|- style="background:#cae1e8"
| atlas & maps || atlas & mapas || atlas & mapas
|- style="background:#cae1e8"
| historical || históricos || históricos
|- style="background:#e20177"
| music & video || música & video || música & vídeo
|-
| audiobooks || audio-libros || livros audio
|- style="background:#670065"
| activities & games || actividades & juegos || atividades & jogos
|-
| games || juegos || jogos
|- style="background:#d03000"
| web links || enlaces red || ligações rede
|- style="background:#f2c8b3"
| search the web || buscar en la red || procurarar a rede
|- style="background:#f2c8b3"
| links for kids || sitios para chicos || ligações para crianças
|- style="background:#f78f1e"
| uniwiki || uniwiki || uniwiki
|-
| water & environment || agua & medioambiente || água & ambiente
|-
|}


'''PO format:''' {{:Localization/Library/sidebar po}}
== PO format ==

== books & reference ==

=== books ===

'''PO format:''' {{:Localization/Library/books po}}

== Math & Science ==

=== biology ===

''NOTICE: the 'translation' to portuguese is actually an improvisation over Google's service!''
: '''IT NEEDS A SERIOUS REVIEWER.'''
: The spanish translation should also be reviewed by somebody knowledgeable in biology (or rather botany and biomes)

''[[/biology|Biology table]]'': {{:Localization/Library/biology}}

'''Biology PO strings''': {{:Localization/Library/biology po}}



==== Biology XML format ====

Experimental - possible future format for scalability. This XML could be submitted/edited directly by content contributors and automagically parsed into HTML. Note that every article has its own unique ID, and that each child tag within an article has a "lang" attribute to enable people to put in translations. The unique ID being wiki-editable is potentially dangerous - easy to change book IDs, duplicate ID numbers, etc. which is probably an argument in favor for a CMS (much as I hate to say it); this format would be easily transferable to a CMS.

Right now I'm just parsing the title, author, publisher date, and note tags, but more can be added if needed. There needs to be an instance of each tag with the lang attribute set to "default" (for when no language is specified, or a nonexistent translation is requested). Tags with no lang attribute are taken to be set as "default." The last valid version of each tag/lang combination is what is actually parsed. For instance:


<pre>
<pre>
<title> A title! </title>
msgid ""
<author lang="en">Author1</author>
#en msgstr "OLPC Library"
<author lang="en">Overwrite Author1</author>
#es msgstr "Biblioteca OLPC"
</pre>
#pt msgstr "Biblioteca de OLPC"


is the same as
msgid ""
#en msgstr "books & reference"
#es msgstr "libros & referencia"
#pt msgstr "livros & referência"


<pre>
msgid ""
<title lang="default"> A title! </title>
#en msgstr "children's books"
<author lang="en">Overwrite Author1</author>
#es msgstr "libros para chicos"
</pre>
#pt msgstr "livros das crianças"


Actual sample xml follows. [[User:Mchua|Mchua]] 11:03, 29 March 2007 (EDT)
msgid ""
#en msgstr "encyclopedia"
#es msgstr "enciclopedia"
#pt msgstr "enciclopédia"


<pre>
msgid ""
<!-- NOT VALIDATED! -->
#en msgstr "literary classics"
<?xml version="1.0" encoding="ISO-8859-1"?>
#es msgstr "clásicos literarios"
<!DOCTYPE article SYSTEM "biology.dtd">
#pt msgstr "clássicos literários"


<article id="1"> <!-- sample -->
msgid ""
<title language="default">Sample title</title>
#en msgstr "lessons"
<author language="default">Made-up author name</author>
#es msgstr "lecciones"
<publisher language="default">Fictional publisher</publisher>
#pt msgstr "lições"
<date language="default">2007</date>
<note language="default">No language specified, or no translation exists in this language</note>
<note language="en">A note in English</note>
<note language="es">A note in Espanol</note>
<note language="pt">A note in Portuguese<note>
</article>


<article id="2">
msgid ""
<title language="default">Tundra</title>
#en msgstr "math & science"
<author language="default"> Frans Lanting </author>
#es msgstr "matemáticas & ciencias"
<publisher language="default">E.O. Wilson Foundation</publisher>
#pt msgstr "matemática & ciência"
<date language="default">2007</date>
<note language="default"> Fall colors, Wrangell-St. Elias National Park, Alaska, USA </note>
<note language="en">Fall colors, Wrangell-St. Elias National Park, Alaska, USA</note>
<note language="es">Colores otoñales, Parque Nacional de Wrangell-St. Elias, Alaska, EE.UU.</note>
<note language="pt">Cores outonales, Parque nacional Wrangell-St. Elias, Alaska, EUA<note>
</article>
</pre>


The advantage to XML is that we can use DTDs to make sure the input format is nice and correct.
msgid ""
#en msgstr "biology"
#es msgstr "biología"
#pt msgstr "biologia"


<pre>
msgid ""
<!-- NOT VALIDATED -->
#en msgstr "math & logic"
#es msgstr "matemáticas & lógica"
#pt msgstr "matemática & lógica"


<!--
msgid ""
Doctype for OLPC biology library format - intended to be template for future article formats as well.
#en msgstr "images & maps"
mchua 3/29/07 - created
#es msgstr "imágenes & mapas"
#pt msgstr "imagens & mapas"


The below notes are largely for content contributors who haven't seen DTDs before:
msgid ""
* a library consists of articles with unique IDs
#en msgstr "nature"
* articles without assigned ID#s get an ID of 0
#es msgstr "naturaleza"
* title and author are required
#pt msgstr "natureza"
* Tags can be marked with language attributes so you can specify what language you're writing in.
check to make sure the value for language you're putting in is valid, or the parser
won't recognize it!
* if no language attribute is specified for child tags, they get a value of "default"
(and will show up when users don't specify a language they want to view in,
or if the language they request does not have a translation yet.)
-->


<!DOCTYPE BIOLOGY [
msgid ""
#en msgstr "atlas & maps"
#es msgstr "atlas & mapas"
#pt msgstr "atlas & mapas"


<!ELEMENT article (title+, author+, publisher*, date*, note*)>
msgid ""
<!ATTLIST article id CDATA "0"> <!-- I would use ID instead of CDATA but ID can't have a default value -->
#en msgstr "historical"
#es msgstr "históricos"
#pt msgstr "históricos"


<!ELEMENT title (#PCDATA)>
msgid ""
<!ATTLIST title language CDATA "default">
#en msgstr "music & video"
#es msgstr "música & video"
#pt msgstr "música & vídeo"


<!ELEMENT author (#PCDATA)>
msgid ""
<!ATTLIST title language CDATA "default">
#en msgstr "audiobooks"
#es msgstr "audio-libros"
#pt msgstr "livros audio"


<!ELEMENT publisher (#PCDATA)>
msgid ""
<!ATTLIST title language CDATA "default">
#en msgstr "activities & games"
#es msgstr "actividades & juegos"
#pt msgstr "atividades & jogos"


<!ELEMENT date (#PCDATA)>
msgid ""
<!ATTLIST title language CDATA "default">
#en msgstr "games"
#es msgstr "juegos"
#pt msgstr "jogos"


<!ELEMENT note (#PCDATA)>
msgid ""
<!ATTLIST title language CDATA "default">
#en msgstr "web links"
#es msgstr "enlaces red"
#pt msgstr "ligações rede"


]>
msgid ""
#en msgstr "search the web"
#es msgstr "buscar en la red"
#pt msgstr "procurarar a rede"


<!-- Possible easy way for people to denote licensing for their work?
msgid ""
<!ENTITY license-by-sa "Creative Commons Attribution Share-Alike">
#en msgstr "links for kids"
-->
#es msgstr "sitios para chicos"
</pre>
#pt msgstr "ligações para crianças"


==== Alternative XML markup ====
msgid ""
#en msgstr "uniwiki"
#es msgstr "uniwiki"
#pt msgstr "uniwiki"


Grouped by language - possibly easier for content contributors & translators, but (I perceive it to be) less flexible in terms of adding tags, languages, etc. on the parse-to-xhtml end. [[User:Mchua|Mchua]] 11:22, 29 March 2007 (EDT)
msgid ""

#en msgstr "water & environment"
<pre>
#es msgstr "agua & medioambiente"
<article id="1">
#pt msgstr "água & ambiente"
<default>
<title> Default title </title>
<author> Default author </author>
</default>
<en>
<title> English title </title>
<author> English author </author>
<en>
<es>
<title> Espanol title </title>
<author> Espanol author </author>
<es>
</article>
</pre>
</pre>

== images & maps ==

=== nature ===

'''PO format:''' {{:Localization/Library/nature po}}

== activities ==

=== Multimedia ===

==== [[Localization/Library/camera po|Camera Activity PO]] ====

If you want to edit, go [[Localization/Library/camera po|here]]<font size="-1"><blockquote>{{:Localization/Library/camera po}}</blockquote></font>

=== Games ===

''[[/games|Games table]]'': {{:Localization/Library/games}}

'''PO format:''' {{:Localization/Library/games po}}

== po2dict - Python helper function ==

Takes pofiles as above and turns them into a python dictionary [[User:Mchua|Mchua]] 13:58, 29 March 2007 (EDT)
<pre>
# po2dict
# feed it the location of a .po file
# returns dictionary version of that file where
# dictionary[MSGINDEXSTRING][LANGUAGECODE] returns the proper string.
# WARNING NOTE: Does not handle multiline strings.
def po2dict(polocation):
pofile = open(polocation, 'r')
translations = {}
currentmsgid = ""
for line in pofile:
if (line[0:5] == "msgid"): # create a new msgid
currentmsgid = line[5:].lstrip(' "').rstrip(' "\n')
translations[currentmsgid] = {}
if (line[4:10] == "msgstr"):
language = line[1:3] # get 2-letter language id
translatedstring = line[10:].lstrip(' "').rstrip(' "\n')
translations[currentmsgid][language] = translatedstring
pofile.close()
return translations

# usage example
dictionary = po2dict{"biology.po")
print dictionary["tiaga-notes"]["es"] # should print the Spanish string ("Lagos y muskegs...")
</pre>


[[category:localization]]

Latest revision as of 00:30, 8 September 2008

Navigation sidebar

sidebar table:

OLPC Library Biblioteca OLPC Biblioteca de OLPC
books & reference libros & referencia livros & referência
picture books libros para chicos livros das crianças
reference enciclopedia enciclopédia
stories clásicos literarios clássicos literários
lessons lecciones lições
math & science matemáticas & ciencias matemática & ciência
biology biología biologia
math & logic matemáticas & lógica matemática & lógica
images & maps imágenes & mapas imagens & mapas
nature naturaleza natureza
atlas atlas & mapas atlas & mapas
historical históricos históricos
music & video música & video música & vídeo
media audio-libros livros audio
activities & games actividades & juegos atividades & jogos
games juegos jogos
web enlaces red ligações rede
search the web buscar en la red procurarar a rede
web links sitios para chicos ligações para crianças
uniwiki uniwiki uniwiki
water & environment agua & medioambiente água & ambiente

PO format:

msgid ""
#en msgstr "OLPC Library"
#es msgstr "Biblioteca OLPC"
#fr msgstr "Bibliothèque OLPC"
#pt msgstr "Biblioteca OLPC"
#ko msgstr "OLPC 도서관"
#ar msgstr "مكتبة ح.م.ل.ط."

msgid ""
#en msgstr "books & reference"
#es msgstr "libros & referencia"
#fr msgstr "livres et références"
#pt msgstr "livros & referência"
#ko msgstr "책과 참고자료"
#ar msgstr "كتب ومراجع"

msgid ""
#en msgstr "picture books"
#es msgstr "libros para chicos"
#fr msgstr "livres illustrés"
#pt msgstr "livros ilustrados"
#ko msgstr "그림책"
#ar msgstr "كتب مصوّرة"

msgid ""
#en msgstr "reference"
#es msgstr "referencia"
#fr msgstr "références"
#pt msgstr "referência"
#ko msgstr "참고자료"
#ar msgstr "مرجع"

msgid ""
#en msgstr "stories"
#es msgstr "cuentos"
#fr msgstr "histoires"
#pt msgstr "histórias"
#ko msgstr "이야기"
#ar msgstr "قصص"

msgid ""
#en msgstr "lessons"
#es msgstr "lecciones"
#fr msgstr "leçons"
#pt msgstr "lições"
#ko msgstr "강의"
#ar msgstr "دروس"

msgid ""
#en msgstr "math & science"
#es msgstr "matemáticas & ciencias"
#fr msgstr "mathématiques et science"
#pt msgstr "matemática & ciência"
#ko msgstr "수학과 과학"
#ar msgstr "رياضيات وعلوم"

msgid ""
#en msgstr "biology"
#es msgstr "biología"
#fr msgstr "biologie"
#pt msgstr "biologia"
#ko msgstr "생물학"
#ar msgstr "أحياء"

msgid ""
#en msgstr "math & logic"
#es msgstr "matemáticas & lógica"
#fr msgstr "mathématiques et logique"
#pt msgstr "matemática & lógica"
#ko msgstr "수학과 논리학"
#ar msgstr "رياضيات ومنطق"

msgid ""
#en msgstr "images & maps"
#es msgstr "imágenes & mapas"
#fr msgstr "Images et cartes"
#pt msgstr "imagens & mapas"
#ko msgstr "사진과 지도"
#ar msgstr "صور وخرائط"

msgid ""
#en msgstr "nature"
#es msgstr "naturaleza"
#fr msgstr "nature"
#pt msgstr "natureza"
#ko msgstr "자연"
#ar msgstr "طبيعة"

msgid ""
#en msgstr "atlas"
#es msgstr "atlas"
#fr msgstr "atlas"
#pt msgstr "atlas"
#ko msgstr "지도책"
#ar msgstr "أطلس"

msgid ""
#en msgstr "historical"
#es msgstr "históricos"
#fr msgstr "historique"
#pt msgstr "históricos"
#ko msgstr "역사"
#ar msgstr "تاريخي"

msgid ""
#en msgstr "music & video"
#es msgstr "música & video"
#fr msgstr "Musiques et vidéos"
#pt msgstr "música & vídeo"
#ko msgstr "음악과 비디오"
#ar msgstr "موسيقى وفيديو"

msgid ""
#en msgstr "media"
#es msgstr "medios"
#fr msgstr "médias"
#pt msgstr "mídia"
#ko msgstr "미디어"
#ar msgstr "وسائط"

msgid ""
#en msgstr "activities & games"
#es msgstr "actividades & juegos"
#fr msgstr "activités et jeux"
#pt msgstr "atividades & jogos"
#ko msgstr "활동과 게임"
#ar msgstr "أنشطة وألعاب"

msgid ""
#en msgstr "games"
#es msgstr "juegos"
#fr msgstr "jeux"
#pt msgstr "jogos"
#ko msgstr "게임"
#ar msgstr "ألعاب"

msgid ""
#en msgstr "web"
#es msgstr "red"
#fr msgstr "Internet"
#pt msgstr "web"
#ko msgstr "웹"
#ar msgstr "وِب"

msgid ""
#en msgstr "search the web"
#es msgstr "buscar en la red"
#fr msgstr "recherche sur Internet"
#pt msgstr "procurar na web"
#ko msgstr "웹 검색"
#ar msgstr "ابحث في الوِب"

msgid ""
#en msgstr "web links"
#es msgstr "enlaces red"
#fr msgstr "liens Internet"
#pt msgstr "ligações da web"
#ko msgstr "웹 링크"
#ar msgstr "وصلات وِب"

msgid ""
#en msgstr "uniwiki"
#es msgstr "uniwiki"
#fr msgstr "uniwiki"
#pt msgstr "uniwiki"
#ko msgstr "유니위키"
#ar msgstr "يُني‌ويكي"

msgid ""
#en msgstr "water & environment"
#es msgstr "agua & medioambiente"
#fr msgstr "eau et environnement"
#pt msgstr "água & meio ambiente"
#ko msgstr "물과 환경"
#ar msgstr "الماء والبيئة"

books & reference

books

PO format:

#
#  Book: Address
#

msgid "libro-address-numero"
#en msgstr "1"
#es msgstr "1"
#pt msgstr "1"
#fr msgstr "1"
#ko msgstr "1"
#ar msgstr "١"

msgid "libro-address-titulo"
#en msgstr "Address"
#es msgstr "Dirección"
#fr msgstr "Adresse"
#ko msgstr "주소"
#pt msgstr "Endereço"
#ar msgstr "عنوان"

msgid "libro-address-autor1"
#en msgstr "Authors - Ahmad Reza Ahmadi"
#es msgstr "Autor - Ahmad Reza Ahmadi"
#fr msgstr "Auteur - Ahmad Reza Ahmadi"
#ko msgstr "저자-아흐마드 레자 아흐마디"
#pt msgstr "Autor - Ahmad Reza Ahmadi"
#ar msgstr "تأليف - أحمد رضا أحمدي"

msgid "libro-address-autor2"
#en msgstr  "Illustrators - Sharareh Khosravani"
#es msgstr "Ilustrador - Sharareh Khosravani"
#fr msgstr "Illustrateur - Sharareh Khosravani"
#ko msgstr "일러스터레이터-사라레 코스라비니"
#pt msgstr "Ilustrador - Sharareh Khosravani"
#ar msgstr "رسوم - شراره خسرواني"

msgid "libro-address-comentario1"
#en msgstr "Grandma was sick and coughed all the time so her grandson went to the store to get more medicine. Finding the store was harder than he thought since he couldn't understand the people he showed the ad..."
#es msgstr "La abuela está enferma y tose todo el tiempo, su nieto entonces va a la tienda para buscar alguna medicina. Encontrar la tienda fué más difícil de lo que pensó ya que no podía entender a la gente que le mostraba..."
#fr msgstr "Grand-Mère était malade et toussait tout le temps donc son petit fils alla à la pharmacie pour chercher plus de médicaments. Trouver la boutique était plus compliqué qu'il ne pensait parce qu'il ne comprenait pas les gens a qui il montrait l'adresse..."
#ko msgstr "할머니는 항상 아프고 기침을 하였으므로, 손자가 약을 사러 갔습니다. 약국을 찾기가 생각보다 어려웠는데, 글을 읽을 수 없었기 때문.."
#pt msgstr "A avó estava doente e tossia o tempo todo, então seu neto vai à farmacia para buscar algum remédio. Encontrar a farmácia foi mais difícil que imaginava, já que ele não podia entender ao que as pessoas a quem mostrava o anúncio..."
#ar msgstr "الجدّة كانت مريضة وأخذت تسعل طوال الوقت لذا فقد ذهب حفيدها للمتجر ليحضر المزيد من الدواء. العثور على المتجر كان أصعب مما اعتقد ولأنه لا يفهم الناس فقد أراهم الإعلان..."

msgid "libro-address-comentario2"
#en msgstr ""
#es msgstr ""
#fr msgstr ""
#ko msgstr ""
#pt msgstr ""
#ar msgstr ""

msgid "libro-address-idioma"
#en msgstr "Persian / Farsi"
#es msgstr "Persa / Farsi"
#fr msgstr "Persan / Farsi"
#ko msgstr "페르시안 / 파시"
#pt msgstr "Persa / Farsi"
#ar msgstr "فارسي"

msgid "libro-address-fecha"
#en msgstr "1384 (Iranian Calendar)"
#es msgstr "1384 (Calendario Iraní)"
#fr msgstr "1384 (Calendrier iranien)"
#ko msgstr "1384 (이란 달력)"
#pt msgstr "1384 (Calendário Iraniano)"
#ar msgstr "١٣٨٤ (بالتقويم الإيراني)

#
#  Book: Asleep and awake
#

msgid "libro-asleep-numero"
#en msgstr "2"
#es msgstr "2"
#pt msgstr "2"
#fr msgstr "2"
#ko msgstr "2"

msgid "libro-asleep-titulo"
#en msgstr "Asleep and awake"
#es msgstr "Dormido y despierto"
#fr msgstr "Endormi et réveillé"
#ko msgstr "잠들기와 깨어나기"
#pt msgstr "Dormindo e acordado"

msgid "libro-asleep-autor1"
#en msgstr "Authors and Illustrators - Azita Arta"
#es msgstr "Autor e Ilustrador - Azita Arta"
#fr msgstr "Auteur et Illustrateur - Azita Arta"
#ko msgstr "작가와 일러스트레이터 - 아지타 아르타"
#pt msgstr "Autor e Ilustrador - Azita Arta"

msgid "libro-asleep-autor2"
#en msgstr ""
#es msgstr ""
#fr msgstr ""
#ko msgstr ""
#pt msgstr ""

msgid "libro-asleep-comentario1"
#en msgstr "A stranger told Mahan, a merchant, he had profited from a trade and asked him to follow him. He followed the stranger into the desert but the stranger disappeared. Then, another man and woman promised..."
#es msgstr "Un desconocido le dijo a Mahan, un mercader, que tuvo suerte en un negocio y le pidió que lo siguiera. Siguió al desconocido al desierto pero desapareció. Después, otro hombre y una mujer le prometieron..."
#fr msgstr "Un inconnu dit à Mahan, un marchand, qu'il avait profite d'un échange et lui demanda de le suivre. Il suivit l'inconnu jusqu'à dans le désert, mais l'inconnu disparu. Puis, un autre homme et une femme promirent..."
#ko msgstr "한 낯선 사람이 상인인 마한에게, 그가 어떤 장사로 큰 돈을 벌었으므로, 그 거래를 같이 하자고 말했습니다. 그는 낯선 사람을 따라 사막으로 갔는데, 그 낯선 이는 홀연히 사라졌습니다. 그 뒤, 어떤 다른 남자와 여자가 약속하기를..."
#pt msgstr "Um desconhecido disse a Mahan, um mercador, que teve lucro num negócio e lhe pediu para que o seguisse. Ele seguiu o desconhecido até o deserto mas este desapareceu. Depois, outro homem e uma mulher lhe prometeram..."

msgid "libro-asleep-comentario2"
#en msgstr "Awards - Selected title of the Bratislava Biennial of lllustrations-Selected title of the Bologna Illustrators Exhibition-BolognaRagazzi Award -- New Horizons (awarded to the series)"
#es msgstr "Premios - Obra seleccionada en la Bienal de Bratislavia de Ilustraciones-Obra seleccionada en la Exposición de Ilustradores de Bologna-Premio BolognaRagazzi -- New Horizons (premio a la serie)"
#ko msgstr "상 - 브라시트라바 비엔니알 일러스트레이션에서 선정된 타이틀 - 보로그나 일러스트레이터 전시회에서 선정된 타이틀 - 보로그나라가찌 상 -- 뉴 허라이즌 (시리즈에 수상)"
#pt msgstr "Prêmios — Título selecionado na Bienal de Ilustrações de Bratislava — Título selecionado na Exposição de Ilustradores de Bolonha — Prêmio BolognaRagazzi New Horizons (prêmio concedido à série)"

msgid "libro-asleep-idioma"
#en msgstr "Persian / Farsi"
#es msgstr "Persa / Farsi"
#ko msgstr "페르시안 / 파시"
#pt msgstr "Persa / Farsi"

msgid "libro-asleep-fecha"
#en msgstr "2000"
#en msgstr "2000"
#ko msgstr "2000"
#pt msgstr "2000"

#
#  Book: Aunt, dear Aunt, kind Daddy
#

msgid "libro-dearaunt-numero"
#en msgstr "3"
#es msgstr "3"
#pt msgstr "3"
#fr msgstr "3"
#ko msgstr "3"

msgid "libro-dearaunt-titulo"
#en msgstr "Aunt, dear Aunt, kind Daddy"
#es msgstr "Tía, querida Tía, Papi amable"
#ko msgstr "아주머니, 자상한 아주머니, 친절한 아빠"
#pt msgstr "Tia, querida Tia, amável Papai"

msgid "libro-dearaunt-autor1"
#en msgstr "Authors - Mostafa Rahmandoust"
#es msgstr "Autor - Mostafa Rahmandoust"
#ko msgstr "작가 - 모스타파 라흐만도우스트"
#pt msgstr "Autor - Mostafa Rahmandoust"

msgid "libro-dearaunt-autor2"
#en msgstr "Illustrators - Ali Namvar"
#es msgstr "Ilustrador - Ali Namvar"
#ko msgstr "일러스트레이터 - 아리 남바르"
#pt msgstr "Ilustrador - Ali Namvar"

msgid "libro-dearaunt-comentario1"
#en msgstr "A girl leaves home to escape her arranged marriage."
#es msgstr "Una niña huye de su casa para escaparse de un matrimonio arreglado."
#ko msgstr "한 소녀가 억지 결혼을 피해 집을 나갔습니다."
#pt msgstr "Uma menina sai de casa para fugir de um casamento arranjado"

msgid "libro-dearaunt-comentario2"
#en msgstr ""
#en msgstr ""
#ko msgstr ""
#pt msgstr ""

msgid "libro-dearaunt-idioma"
#en msgstr "Persian / Farsi"
#es msgstr "Persa / Farsi"
#ko msgstr "페프시안 / 파시"
#pt msgstr "Persa / Farsi"

msgid "libro-dearaunt-fecha"
#en msgstr "1381 (Iranian Calendar)"
#es msgstr "1381 (Calendario Iraní)"
#ko msgstr "1381 (이란 달력)"
#pt msgstr "1381 (Calendário Iraniano)"

#
#  Book: The blue sky
#

msgid "libro-bluesky-numero"
#en msgstr "4"
#es msgstr "4"
#pt msgstr "4"
#fr msgstr "4"
#ko msgstr "4"

msgid "libro-bluesky-titulo"
#en msgstr "The blue sky"
#es msgstr "El cielo azul"
#ko msgstr "블루 스카이"
#pt msgstr "O céu azul"

msgid "libro-bluesky-autor1"
#en msgstr "Authors and Illustrators - Andrea Petrlik Huseinović"
#es msgstr "Autor e Ilustrador - Andrea Petrlik Huseinović"
#ko msgstr "저자와 일터 - 안드레아 페트리크 호세이노빅"
#pt msgstr "Autor e Ilustrador - Andrea Petrlik Huseinović"

msgid "libro-bluesky-autor2"
#en msgstr "Translators - Ludwig Bauer"
#es msgstr "Traductor - Ludwig Bauer"
#ko msgstr "번역자 - 루드비히 바우어"
#pt msgstr "Tradutor - Ludwig Bauer"

msgid "libro-bluesky-comentario1"
#en msgstr "A sad and lonely little girl dreams of seeing her mother again as she watches the clouds in the sky. One day, she meets a strange bird who helps the girl return to her mother."
#en msgstr "Una triste y solitaria niña sueña con ver a su madre nuevamente mientras mira las nubes en el cielo. Un día, se encuentra con un extraño pájaro que la ayuda a volver con su madre."
#ko msgstr "외롭고 쓸쓸한 작은 소녀 하나가 하늘 구름을 보며 어머니를 그리워합니다. 어느날, 한 낯선 새가 나타나, 소녀가 어머니에게 돌아가는 것을 도와줍니다."
#pt msgstr "Uma triste e solitária menina sonha com voltar a ver sua mãe enquanto olha as nuvens no céu. Um dia, ela encontra um pássaro estranho que a ajuda a voltar para sua mãe."

msgid "libro-bluesky-comentario2"
#en msgstr "Awards - Grigor Vitez Award-BIB (Biennial of Illustration), Bratislava, Gold Plaque"
#es msgstr "Premios - Premio Grigor Vitez-BIB (Bienal de Ilustración), Bratislava, Placa de Oro"
#ko msgstr "상 - 그리고르 비테즈 어워드 - BIB (일터 비엔날레), 브라티스라바, 골드 플라그"
#pt msgstr "Prêmios - Prêmio Grigor Vitez-BIB (Bienal de Ilustração), Bratislava, Placa de Ouro"

msgid "libro-bluesky-idioma"
#en msgstr "English"
#es msgstr "Inglés"
#ko msgstr "한국어"
#pt msgstr "Inglês"

msgid "libro-bluesky-fecha"
#en msgstr "2001"
#es msgstr "2001"
#ko msgstr "2001"
#pt msgstr "2001"

#
#  Book: The Captain
#

msgid "libro-captain-numero"
#en msgstr "5"
#es msgstr "5"
#pt msgstr "5"
#fr msgstr "5"
#ko msgstr "5"

msgid "libro-captain-titulo"
#en msgstr "The Captain"
#es msgstr "El Capitán"
#ko msgstr "선장"
#pt msgstr "O Capitão"

msgid "libro-captain-autor1"
#en msgstr "Authors - Liliana Santirso"
#es msgstr "Autora - Liliana Santirso"
#ko msgstr "작가 - 리리아나 산티르소"
#pt msgstr "Autora - Liliana Santirso"

msgid "libro-captain-autor2"
#en msgstr "Illustrators - Patricio Gómez"
#es msgstr "Ilustrador - Patricio Gómez"
#ko msgstr "일터 - 패트리시오 고메즈"
#pt msgstr "Ilustrador - Patricio Gómez"

msgid "libro-captain-comentario1"
#en msgstr "The Captain was just a boy when he set foot on a ship called the Sebastian. He spent many years on the ship and with it shared many adventures. But, can he lead his crew through the toughest waters o..."
#es msgstr "El Capitán era solo un chico cuando pisó por primera vez el barco llamado Sebastián. Pasó muchos años en ese barco y compartieron muchas aventuras. Pero puede comandar su tripulación a través de las peligrosas aguas d..."
#ko msgstr "그 선장은 아이 때부터 세바스찬이란 배에 올랐습니다. 그는 그 배에서 수 년간 많은 모험을 했습니다. 그러나, 그는 선원들을 거친 바다 속으로..."
#pt msgstr "O Capitão era ainda menino quando pisou em um navio chamado Sebastián. Passou muitos anos no navio, e com ele compartilhou muitas aventuras. Mas poderia ele comandar sua tripulação pelas águas turbulentas..."

msgid "libro-captain-comentario2"
#en msgstr ""
#es msgstr ""
#ko msgstr ""
#pt msgstr ""

msgid "libro-captain-idioma"
#en msgstr "Spanish"
#es msgstr "Castellano"
#ko msgstr "스페인어"
#pt msgstr "Espanhol"

msgid "libro-captain-fecha"
#en msgstr "1998"
#es msgstr "1998"
#ko msgstr "1998"
#pt msgstr "1998"

#
#  Book: Ciconia Ciconia
#

msgid "libro-ciconia-numero"
#en msgstr "6"
#es msgstr "6"
#pt msgstr "6"
#fr msgstr "6"
#ko msgstr "6"

msgid "libro-ciconia-titulo"
#en msgstr "Ciconia Ciconia"
#es msgstr "Ciconia Ciconia"
#ko msgstr "시코니아 시코니아"
#pt msgstr "Ciconia Ciconia"

msgid "libro-ciconia-autor1"
#en msgstr "Authors and Illustrators - Andrea Petrlik Huseinović"
#es msgstr "Autor e Ilustrador - Andrea Petrlik Huseinović"
#ko msgstr "작가와 일터 - 안드레아 페트릭 후세이노빅"
#pt msgstr "Autor e Ilustrador - Andrea Petrlik Huseinović"

msgid "libro-ciconia-autor2"
#en msgstr ""
#es msgstr ""
#ko msgstr ""
#pt msgstr ""

msgid "libro-ciconia-comentario1"
#en msgstr "When the white stork's Croatian village is destroyed by war, he searches for a new place to live. However, he finds out that there's no place like home."
#es msgstr "Cuando la aldea Croata de la cigüeña blanca fue destruida por la guerra, ella busca un nuevo lugar en donde vivir, descubriendo que no hay un lugar como el hogar."
#ko msgstr "전쟁으로 인해 화이트 스토그의 크로아티아 마을이 파괴되자, 그는 새로운 보금자리를 찾아 나섰습니다. 그러나, 집과 같은 곳은 없었습니다."
#pt msgstr "Quando a aldeia Croata da cegonha branca é destruída pela guerra, ele procura por um lugar onde viver, descobrindo que não há lugar como o lar."

msgid "libro-ciconia-comentario2"
#en msgstr "Awards - Grand Prize, Oita Biennial of Illustrations-Selected title of the White Ravens"
#es msgstr "Premios - Gran Premio, Bienal Oita de Ilustración-Obra seleccionada por White Ravens"
#ko msgstr "상 - 그랜드 프라이즈, 오이타 일터 비엔날라 - 화이트 레이번즈의 선정 타이틀"
#pt msgstr "Prêmios - Grande Prêmio, Bienal Oita de Ilustração-Título selecionado por White Ravens"

msgid "libro-ciconia-idioma"
#en msgstr "Croatian"
#es msgstr "Croata"
#ko msgstr "크로아티안"
#pt msgstr "Croata"

msgid "libro-ciconia-fecha"
#en msgstr "2003"
#es msgstr "2003"
#ko msgstr "2003"
#pt msgstr "2003"

#
#  Book: I like to play with books
#

msgid "libro-playwithbooks-numero"
#en msgstr "7"
#es msgstr "7"
#pt msgstr "7"
#fr msgstr "7"
#ko msgstr "7"

msgid "libro-playwithbooks-titulo"
#en msgstr "I like to play with books"
#es msgstr "Me gusta jugar con libros"
#ko msgstr "책이랑 노는게 좋아요"
#pt msgstr "Gosto de brincar com livros"

msgid "libro-playwithbooks-autor1"
#en msgstr "Authors - Liliana Santirso"
#es msgstr "Autra - Liliana Santirso"
#ko msgstr "작가 - 리리아나 산티르소"
#pt msgstr "Autora - Liliana Santirso"

msgid "libro-playwithbooks-autor2"
#en msgstr "Illustrators - Raúl Villagómez~Patricio Gómez"
#es msgstr "Ilustradores - Raúl Villagómez~Patricio Gómez"
#ko msgstr "일터 - 라울 빌라고메즈~파트리시오 고메즈"
#pt msgstr "Ilustradores - Raúl Villagómez~Patricio Gómez"

msgid "libro-playwithbooks-comentario1"
#en msgstr "This is a short story about why a child loves to play with books."
#es msgstr "Un cuento corto de por qué un chico le encanta jugar con libros."
#ko msgstr "이것은 아이가 책이랑 노는 것을 왜 좋아하는지 간략한 이야기입니다."
#pt msgstr "Uma história curta de por que uma criança gosta de brincar com livros."

msgid "libro-playwithbooks-comentario2"
#en msgstr ""
#es msgstr ""
#ko msgstr ""
#pt msgstr ""

msgid "libro-playwithbooks-idioma"
#en msgstr "Spanish"
#es msgstr "Castellano"
#ko msgstr "스페인어"
#pt msgstr "Espanhol"

msgid "libro-playwithbooks-fecha"
#en msgstr "1998"
#es msgstr "1998"
#ko msgstr "1998"
#pt msgstr "1998"

#
#  Book: Little Fluff and his brothers
#

msgid "libro-fluff-numero"
#en msgstr "8"
#es msgstr "8"
#pt msgstr "8"
#fr msgstr "8"
#ko msgstr "8"

msgid "libro-fluff-titulo"
#en msgstr "Little Fluff and his brothers"
#es msgstr "Pequeña Pelusa y sus hermanos"
#ko msgstr "작은 솜털과 그의 형제들"
#pt msgstr "Pequena Peluda e seus irmãos"

msgid "libro-fluff-autor1"
#en msgstr "Authors - Daniel Barradas"
#es msgstr "Autor - Daniel Barradas"
#ko msgstr "작가 - 다니엘 바라다스"
#pt msgstr "Autor - Daniel Barradas"

msgid "libro-fluff-autor2"
#en msgstr "Illustrators - Carla Pott"
#es msgstr "Ilustradora - Carla Pott"
#ko msgstr "일터 - 카라 포트"
#pt msgstr "Ilustradora - Carla Pott"

msgid "libro-fluff-comentario1"
#en msgstr "This is the story of a little pink fluff that was born in the navel of a girl. Unlike the others, that turned grey with time, this little fluff never lost its color. He felt lonely because he was di..."
#es msgstr "Esta es la historia de una pequeña pelusa rosa que nació en el ombligo de una niña. A diferencia de otros, que se ponían grises con el tiempo, esta pequeña pelusa nunca perdió su color. Se sentía sola porque le..."
#ko msgstr "이것은 한 여자 아이의 배꼽에서 태어난 작은 핑크색 솜털 이야기입니다. 다른 것들과 달리, 이것은 시간이 지나도 회색을 띄지 않고 핑크색을 유지했습니다. 그는 외로웠는데, 왜냐하면..."
#pt msgstr "Esta é uma história de uma pequena peluda rosa que nasceu no umbigo de uma menina. Diferente dos outros, que ficavam cinzentos com o tempo, esta pequena peluda nunca perdeu sua cor. Sentia-se solitária porque era..."

msgid "libro-fluff-comentario2"
#en msgstr ""
#es msgstr ""
#ko msgstr ""
#pt msgstr ""

msgid "libro-fluff-idioma"
#en msgstr "Portuguese"
#es msgstr "Portugués"
#ko msgstr "포르투칼어"
#pt msgstr "Português"

msgid "libro-fluff-fecha"
#en msgstr ""
#es msgstr ""
#ko msgstr ""
#pt msgstr ""

#
#  Book: The red ball
#

msgid "libro-redball-numero"
#en msgstr "9"
#es msgstr "9"
#pt msgstr "9"
#fr msgstr "9"
#ko msgstr "9"

msgid "libro-redball-titulo"
#en msgstr "The red ball"
#es msgstr "La pelota roja"
#ko msgstr "라 페로타 로자"
#pt msgstr "A bola vermelha"

msgid "libro-redball-autor1"
#en msgstr "Authors - Farideh Khalatbaree"
#es msgstr "Autor - Farideh Khalatbaree"
#ko msgstr "작가 - 파리드 카라트바리"
#pt msgstr "Autor - Farideh Khalatbaree"

msgid "libro-redball-autor2"
#en msgstr "Illustrators - Ali Mafakheri"
#es msgstr "Ilustrador - Ali Mafakheri"
#ko msgstr "일터 - 아리 마파그헤리"
#pt msgstr "Ilustrador - Ali Mafakheri"

msgid "libro-redball-comentario1"
#en msgstr "The red ball was left in a cupboard for a long time, because his owner had grown up and did not like to play with him any longer. So the ball decided to leave the cupboard and try to find a new friend..."
#es msgstr "La pelota roja fue abandonada en una alacena por mucho tiempo, porque su dueño había crecido y ya no le gustaba jugar con ella. Entonces la pelota decidió salir de la alacena e intentar encontrar un nuevo amigo..."
#ko msgstr "그 빨간 공은 오랫 동안 선반에 놓여져 있었는데, 그의 주인이 커서 이제는 더 이상 그와 놀려고 하지 않았기 때문입니다. 그래서, 그 공은 선반을 떠나 새로운 친구를 찾기로..."
#pt msgstr "A bola vermelha foi deixada em um armário por um longo tempo, porque seu dono havia crescido e não gostava mais de brincar com ela. Então a bola decidiu sair do armário e porcurar um novo amigo..."

msgid "libro-redball-comentario2"
#en msgstr "Awards - BolognaRagazzi Award -- New Horizons (awarded to the series)"
#es msgstr "Premios - Premio BolognaRagazzi -- New Horizons (premio a la serie)"
#ko msgstr "상 - 보로그나라가찌 상 -- 뉴 허라이즌 (시리즈 수상)"
#pt msgstr "Prêmios - Prêmio BolognaRagazzi -- New Horizons (prêmio concedido à serie)"

msgid "libro-redball-idioma"
#en msgstr "Persian / Farsi"
#es msgstr "Persa / Farsi"
#ko msgstr "페르시안 / 파시"
#pt msgstr "Persa / Farsi"

msgid "libro-redball-fecha"
#en msgstr "1383 (Iranian Calendar)"
#es msgstr "1383 (Calendario Iraní)
#ko msgstr "1383 (이란 달력)"
#pt msgstr "1383 (Calendário Iraniano)"

Math & Science

biology

NOTICE: the 'translation' to portuguese is actually an improvisation over Google's service!

IT NEEDS A SERIOUS REVIEWER.
The spanish translation should also be reviewed by somebody knowledgeable in biology (or rather botany and biomes)

Biology table:

math & science matemáticas & ciencias matemática & ciência
biology biología biologia
Tundra Tundra Tundra
Fall colors, Wrangell-St. Elias National Park, Alaska, USA Colores otoñales, Parque Nacional de Wrangell-St. Elias, Alaska, EE.UU. Cores outonales, Parque nacional Wrangell-St. Elias, Alaska, EUA
Boreal Forests / Tiaga Bosques boreales / Tiaga Florestas Boreales / Tiaga
Lakes and muskegs, Chitina River Valley, Wrangell St. Elias National Park, Alaska, USA Lagos y muskegs, Chitina River Valley, Parque Nacional Wrangell St. Elias, Alaska, EE.UU. Lagos e muskegs, Chitina River Valley, Parque Nacional do Wrangell St. Elias, Alaska, EUA
Temperate coniferous forests Bosques coníferos templados Florestas coníferas temperadas
Aspen and conifers, Dixie National Forest, Utah, USA Alamos y coníferas, Bosque Nacional de Dixie, Utah, EE.UU. Choupo tremedor e coníferas, Floresta Nacional de Dixie, Utá, EUA
Temperate broadleaf mixed forests Bosques de flor templados mezclados Florestas misturadas com flor temperados
Flowering rata tree, Metrosideros umbellata, Westland National Park, New Zealand Árbol rata floreciendo, Metrosideros umbellata, Parque Nacional Westland, Nueva Zelandia Árvore do rata, Metrosideros umbellata, Parque Nacional Westland, Nova Zelândia
Temperate grasslands, savannas, and shrublands Praderas, savannas, y montes templados Pradarias, y savanas temperedas
Coastal prairie in mist, Monterey Bay, California, USA Pradera costera en la niebla, Bahía de Monterey, California, EE.UU. Pradaria litoral na névoa, Baía de Monterey, Califórnia, EUA
Montane grasslands and shrublands Praderas y arbustos de altura Prados e plantas do altura
Nilgiri Hills, Western Ghats, India Colinas de Nilgiri, Ghats occidental, India Montes de Nilgiri, Ghats ocidental, India
Deserts and xeric shrublands Desiertos y vegetación xérica Desertos e plantas xericas
River gum trees and spinifex grass, Central Desert, Australia Árboles de goma de río y pasto spinifex, Desierto Central, Australia Árvores do goma do rio e grama do spinifex, Deserto Central, Austrália
Mediterranean forests, woodlands, and scrub Bosques mediterráneos, arboledas, y arbustos Florestas Mediterranean, e arbustos
Flowering namaqua daisies, Namaqualand, Goegap Nature Reserve, South Africa Margaritas namaqua floreciendo, Namaqualand, Reserva Natural de Goegap, Sudáfrica Margaridinhas namaqua, Namaqualand, Reserva de natureza de Goegap, África do Sul
Tropical and subtropical grasslands, savannas, and shrublands Prados, sabanas, y montes tropicales y subtropicales Pradaria, savanas, e monte tropicais e subtropical
Giraffe (Giraffa camelopardalis) and zebras (Equus quagga) foraging, Masai Mara Reserve, Kenya Jirafa (Giraffa camelopardalis) y cebras (Equus quagga) alimentándose, Reserva Mara de los Masai, Kenia Girafa (Giraffa camelopardalis) e zebras (Equus quagga) comendo, Reserva Mara dos Masai, Kenya
Flooded grasslands and savannas Praderas inundadas y sabanas Pradaria inundadas e savanas
Palm islands, Okavango Delta, Botswana Islas de palmas, Delta de Okavango, Botswana Ilha da palma, Delta de Okavango, Botswana
Tropical and subtropical moist broadleaf forests Bosques de flores húmedas tropicales y subtropicales Florestas da folha húmidas tropicais e subtropical
Ranomafana rainforest, Madagascar Selva de Ranomafana, Madagascar Selva de Ranomafana, Madagascar
Tropical and subtropical dry broadleaf forests Bosques secos de flor tropicales y subtropicales Florestas secas com flor tropicais e subtropical
Cerrado woodland, Pantanal, Brazil Arbolado de Cerrado, Pantanal, Brasil Floresta de Cerrado, Pantanal, Brasil
Tropical and subtropical coniferous forests Bosque de coníferas tropical y subtropical Florestas coniferous tropicais e subtropical
Firs and pines, Sierra Madre Oriental, Michoacan, Mexico Abetos y pinos, Sierra Madre Oriental, Michoacan, México Abetos e pinhos, Sierra Madre Oriental, Michoacan, México

Biology PO strings:

msgid "tundra-title"
#en msgstr "Tundra"
#es msgstr "Tundra"
#fr msgstr "Tundra"
#pt msgstr "Tundra"
#ko msgstr "툰드라"

msgid "tundra-note"
#en msgstr "Fall colors, Wrangell-St. Elias National Park, Alaska, USA"
#es msgstr "Colores otoñales, Parque Nacional de Wrangell-St. Elias, Alaska, EE.UU."
#fr msgstr "Couleurs d'automne, Parc National de Wrangell-St. Elias, Alaska, EU"
#pt msgstr "Cores outonais, Parque Nacional Wrangell-St. Elias, Alaska, EUA"
#ko msgstr "가을 컬러, 랭겔-st. 엘리아스 내셔널 파크, 알라스카, 미국"

msgid "tiaga-title"
#en msgstr "Boreal Forests / Tiaga"
#es msgstr "Bosques boreales / Tiaga"
#fr msgstr "Forêts boréales / Tiaga"
#pt msgstr "Florestas Boreais / Tiaga"
#ko msgstr "보딜 포리스트 / 티아가"

msgid "tiaga-note"
#en msgstr "Lakes and muskegs, Chitina River Valley, Wrangell St. Elias National Park, Alaska, USA"
#es msgstr "Lagos y muskegs, Chitina River Valley, Parque Nacional Wrangell St. Elias, Alaska, EE.UU."
#fr msgstr "Lacs et muskegs, Chitina River Valley, Parc National de Wrangell-St. Elias, Alaska, EU"
#pt msgstr "Lagos e muskegs, Chitina River Valley, Parque Nacional do Wrangell St. Elias, Alaska, EUA"
#ko msgstr "레이크 및 머스크, 크리스티나 리버 밸리, 랭겔 st. 에리어스 내셔널 파크"

msgid "temperate-coniferous-title"
#en msgstr "Temperate coniferous forests"
#es msgstr "Bosques coníferos templados"
#fr msgstr "Forets de conifères tempérées"
#pt msgstr "Florestas coníferas temperadas"
#ko msgstr "온대성 침엽수 숲"

msgid "temperate-coniferous-note"
#en msgstr "Aspen and conifers, Dixie National Forest, Utah, USA"
#es msgstr "Alamos y coníferas, Bosque Nacional de Dixie, Utah, EE.UU."
#fr msgstr "Peupliers et conifères , Forêt Nationale de Dixie, Utah, EU"
#pt msgstr "Álamos e coníferas, Floresta Nacional de Dixie, Utah, EUA"

msgid "temperate-broadleaf-title"
#en msgstr "Temperate broadleaf mixed forests"
#es msgstr "Bosques de flor templados mezclados"
#fr msgstr "Forêt de caduques tempérés mélangés"
#pt msgstr "Florestas folhosas temperadas mistas"
#ko msgstr "온대성 활엽수 혼합 숲"

msgid "temperate-broadleaf-note"
#en msgstr "Flowering rata tree, Metrosideros umbellata, Westland National Park, New Zealand"
#es msgstr "Árbol rata floreciendo, Metrosideros umbellata, Parque Nacional Westland, Nueva Zelandia"
#fr msgstr "Arbre rata en fleur, Metrosideros umbellata, Parc National Westland, Nouvelle Zélande"
#pt msgstr "Árvore rata-do-sul florescendo, Metrosideros umbellata, Parque Nacional Westland, Nova Zelândia"
#ko msgstr "꽃피는 나무, Metrosideros umbellata, 웨스트랜드 내셔널 파크, 뉴질랜드"

msgid "prairie-title"
#en msgstr "Temperate grasslands, savannas, and shrublands"
#es msgstr "Praderas, savannas, y montes templados"
#fr msgstr "Prairies, savannes, et arbustes tempérés"
#pt msgstr "Prados, savanas e vegetação arbustiva temperadas"
#ko msgstr "온대성 초원, 사바나, 그리고 관목숲"

msgid "prairie-note"
#en msgstr "Coastal prairie in mist, Monterey Bay, California, USA"
#es msgstr "Pradera costera en la niebla, Bahía de Monterey, California, EE.UU."
#fr msgstr "Prairie côtière dans le brouillard, Bay de Monterey, Californie, EU"
#pt msgstr "Pradaria litoral na névoa, Baía de Monterey, Califórnia, EUA"
#ko msgstr "안개 속의 해안 평원, 몬터리 베이, 캘리포니아, 미국"

msgid "montane-title"
#en msgstr "Montane grasslands and shrublands"
#es msgstr "Praderas y arbustos de altura"
#pt msgstr "Prados e vegetação arbustiva de montanha"
#ko msgstr "산악지 초원과 관목숲"

msgid "montane-note"
#en msgstr "Nilgiri Hills, Western Ghats, India"
#es msgstr "Colinas de Nilgiri, Ghats occidental, India"
#fr msgstr "Collines de Nilgiri, Ghats occidental, Inde"
#pt msgstr "Montes de Nilgiri, Ghats ocidental, India"
#ko msgstr "닐기리 힐, 웨스턴 가트, 인도"

msgid "desert-title"
#en msgstr "Deserts and xeric shrublands"
#es msgstr "Desiertos y vegetación xérica"
#fr msgstr "Déserts et végétation xérique"
#pt msgstr "Desertos e vegetação arbustiva xérica"
#ko msgstr "사막과 건조한 관목숲"

msgid "desert-note"
#en msgstr "River gum trees and spinifex grass, Central Desert, Australia"
#es msgstr "Eucaliptos de río y pasto spinifex, Desierto Central, Australia"
#fr msgstr "Eucalyptus de rivière et herbes spinifex, Désert Central, Australie"
#pt msgstr "Eucaliptos e capinzal spinifex, Deserto Central, Austrália"
#ko msgstr "강변 고무나무와 다년초, 샌트럴 데저트, 호주"

msgid "mediterranean-title"
#en msgstr "Mediterranean forests, woodlands, and shrub"
#es msgstr "Bosques mediterráneos, arboledas, y arbustos"
#fr msgstr "Forêts méditerranéennes, bois, et arbustes"
#pt msgstr "Florestas Mediterrâneas, florestas abertas e arbustos"
#ko msgstr "지중해 숲, 산림, 그리고 관목"

msgid "mediterranean-note"
#en msgstr "Flowering namaqua daisies, Namaqualand, Goegap Nature Reserve, South Africa"
#es msgstr "Margaritas namaqua floreciendo, Namaqualand, Reserva Natural de Goegap, Sudáfrica"
#fr msgstr "Marguerites namaqua en fleur, Namaqualand, Reserve Naturelle de Goegap, Afrique"
#pt msgstr "Margaridas namaqua florescendo, Namaqualand, Reserva Natural de Goegap, África do Sul"
#ko msgstr "꽃피는 나마쿠아 데이지, 나마쿠아 랜드, 고갭 네이처 리저브, 사우스 아프리카"

msgid "savannah-title"
#en msgstr "Tropical and subtropical grasslands, savannas, and shrublands"
#es msgstr "Prados, sabanas, y montes tropicales y subtropicales"
#fr msgstr "Prairies, savanes, et arbustes tropicaux y subtropicaux"
#pt msgstr "Pradaria, savanas, e vegetação arbustiva tropicais e subtropicais"
#ko msgstr "열대 및 아열대 초원, 사바나, 그리고 관목숲"

msgid "savannah-note"
#en msgstr "Giraffe (Giraffa camelopardalis) and zebras (Equus quagga) foraging, Masai Mara Reserve, Kenya"
#es msgstr "Jirafa (Giraffa camelopardalis) y cebras (Equus quagga) alimentándose, Reserva Mara de los Masai, Kenia"
#fr msgstr "Girafe (Giraffa camelopardalis) et zèbres (Equus quagga) se nourrissant, Réserve de Masai Mara, Kenya"
#pt msgstr "Girafa (Giraffa camelopardalis) e zebras (Equus quagga) comendo, Reserva Masai Mara, Kenya"
#ko msgstr "풀을 뜯고 있는 기린과 얼룩말, 마사이마라 리저브, 케냐"

msgid "floodplain-title"
#en msgstr "Flooded grasslands and savannas"
#es msgstr "Praderas inundadas y sabanas"
#fr msgstr "Prairies inondées y savanes"
#pt msgstr "Pradarias inundadas e savanas"
#ko msgstr "물이 불어난 초원과 사바나"

msgid "floodplain-note"
#en msgstr "Palm islands, Okavango Delta, Botswana"
#es msgstr "Islas de palmas, Delta de Okavango, Botswana"
#fr msgstr "Ile de palme, Delta de l'Okavango, Botswana"
#pt msgstr "Ilha de palmas, Delta do Okavango, Botswana"
#ko msgstr "팜 아일랜드, 오카방고 델타, 보스와나"

msgid "tropical-moist-title"
#en msgstr "Tropical and subtropical moist broadleaf forests"
#es msgstr "Bosques de flor húmedas tropicales y subtropicales"
#fr msgstr "Forets de caduques humides tropicales et subtropicales"
#pt msgstr "Florestas folhosas úmidas tropicais e subtropicais"
#ko msgstr "열대 및 아열대 습지 활엽수 숲"

msgid "tropical-moist-note"
#en msgstr "Ranomafana rainforest, Madagascar"
#es msgstr "Selva de Ranomafana, Madagascar"
#fr msgstr "Jungle de Ranomafana, Madagascar"
#pt msgstr "Floresta pluvial de Ranomafana, Madagascar"
#ko msgstr "라노마파나 우림, 마다가스카르"

msgid "tropical-dry-title"
#en msgstr "Tropical and subtropical dry broadleaf forests"
#es msgstr "Bosques secos de flor tropicales y subtropicales"
#fr msgstr "Forets de caduques sèches tropicales et subtropicales"
#pt msgstr "Florestas folhosas secas tropicais e subtropicais"
#ko msgstr "열대 및 아열대 건조 활엽수 숲"

msgid "tropical-dry-note"
#en msgstr "Cerrado woodland, Pantanal, Brazil"
#es msgstr "Arbolado de Cerrado, Pantanal, Brasil"
#fr msgstr "Bois de Cerrado, Pantanal, Brésil"
#pt msgstr "Cerrado, Pantanal, Brasil"
#ko msgstr "세다도 우드랜드, 판타날, 브라질"

msgid "tropical-coniferous-title"
#en msgstr "Tropical and subtropical coniferous forests"
#es msgstr "Bosque de coníferas tropical y subtropical"
#fr msgstr "Forêts de conifères tropicales y subtropicales"
#pt msgstr "Florestas coníferas tropicais e subtropicais"
#ko msgstr "열대 및 아열대 침엽수 숲"

msgid "tropical-coniferous-note"
#en msgstr "Firs and pines, Sierra Madre Oriental, Michoacan, Mexico"
#es msgstr "Abetos y pinos, Sierra Madre Oriental, Michoacan, México"
#fr msgstr "Pins et sapins, Sierra Madre Orientale, Michoacan, Mexique"
#pt msgstr "Abetos e pinheiros, Sierra Madre Oriental, Michoacan, México"
#ko msgstr "전나무와 소나무, 시에라 마드르 오리엔탈, 미초아칸, 멕시코"


Biology XML format

Experimental - possible future format for scalability. This XML could be submitted/edited directly by content contributors and automagically parsed into HTML. Note that every article has its own unique ID, and that each child tag within an article has a "lang" attribute to enable people to put in translations. The unique ID being wiki-editable is potentially dangerous - easy to change book IDs, duplicate ID numbers, etc. which is probably an argument in favor for a CMS (much as I hate to say it); this format would be easily transferable to a CMS.

Right now I'm just parsing the title, author, publisher date, and note tags, but more can be added if needed. There needs to be an instance of each tag with the lang attribute set to "default" (for when no language is specified, or a nonexistent translation is requested). Tags with no lang attribute are taken to be set as "default." The last valid version of each tag/lang combination is what is actually parsed. For instance:

<title> A title! </title>
<author lang="en">Author1</author>
<author lang="en">Overwrite Author1</author>

is the same as

<title lang="default"> A title! </title>
<author lang="en">Overwrite Author1</author>

Actual sample xml follows. Mchua 11:03, 29 March 2007 (EDT)

<!-- NOT VALIDATED! -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE article SYSTEM "biology.dtd">

<article id="1"> <!-- sample -->
    <title language="default">Sample title</title>
    <author language="default">Made-up author name</author>
    <publisher language="default">Fictional publisher</publisher>
    <date language="default">2007</date>
    <note language="default">No language specified, or no translation exists in this language</note>
    <note language="en">A note in English</note>
    <note language="es">A note in Espanol</note>
    <note language="pt">A note in Portuguese<note>
</article>

<article id="2">
    <title language="default">Tundra</title>
    <author language="default"> Frans Lanting </author>
    <publisher language="default">E.O. Wilson Foundation</publisher>
    <date language="default">2007</date>
    <note language="default"> Fall colors, Wrangell-St. Elias National Park, Alaska, USA </note>
    <note language="en">Fall colors, Wrangell-St. Elias National Park, Alaska, USA</note>
    <note language="es">Colores otoñales, Parque Nacional de Wrangell-St. Elias, Alaska, EE.UU.</note>
    <note language="pt">Cores outonales, Parque nacional Wrangell-St. Elias, Alaska, EUA<note>
</article>

The advantage to XML is that we can use DTDs to make sure the input format is nice and correct.

<!-- NOT VALIDATED -->

<!--
Doctype for OLPC biology library format - intended to be template for future article formats as well.
mchua 3/29/07 - created

The below notes are largely for content contributors who haven't seen DTDs before:
 * a library consists of articles with unique IDs
 * articles without assigned ID#s get an ID of 0
 * title and author are required
 * Tags can be marked with language attributes so you can specify what language you're writing in.
   check to make sure the value for language you're putting in is valid, or the parser
   won't recognize it!
 * if no language attribute is specified for child tags, they get a value of "default"
   (and will show up when users don't specify a language they want to view in,
    or if the language they request does not have a translation yet.)
-->

<!DOCTYPE BIOLOGY [

<!ELEMENT article (title+, author+, publisher*, date*, note*)>
<!ATTLIST article id CDATA "0"> <!-- I would use ID instead of CDATA but ID can't have a default value -->

<!ELEMENT title (#PCDATA)>
<!ATTLIST title language CDATA "default">

<!ELEMENT author (#PCDATA)>
<!ATTLIST title language CDATA "default">

<!ELEMENT publisher (#PCDATA)>
<!ATTLIST title language CDATA "default">

<!ELEMENT date (#PCDATA)>
<!ATTLIST title language CDATA "default">

<!ELEMENT note (#PCDATA)>
<!ATTLIST title language CDATA "default">

]>

<!-- Possible easy way for people to denote licensing for their work?
<!ENTITY license-by-sa "Creative Commons Attribution Share-Alike">
-->

Alternative XML markup

Grouped by language - possibly easier for content contributors & translators, but (I perceive it to be) less flexible in terms of adding tags, languages, etc. on the parse-to-xhtml end. Mchua 11:22, 29 March 2007 (EDT)

<article id="1">
    <default>
        <title> Default title </title>
        <author> Default author </author>
    </default>
    <en>
        <title> English title </title>
        <author> English author </author>
    <en>
    <es>
        <title> Espanol title </title>
        <author> Espanol author </author>
    <es>
</article>

images & maps

nature

PO format:


msgid "images&nature-nature-daisy"
#en msgstr "African Daisy"
#es msgstr "Margarita Africana"
#pt msgstr "Margarida Africana"
#ko msgstr "어메리칸 데이지"

msgid "images&nature-nature-daisy-author"
#en msgstr "Jon Sullivan"
#es msgstr "Jon Sullivan"
#pt msgstr "Jon Sullivan"

msgid "images&nature-nature-bumblebee"
#en msgstr "Bumble Bee"
#es msgstr "Abejorro"
#pt msgstr "Mangangá ou Abelhão"
#ko msgstr "범블 비"

msgid "images&nature-nature-v838star"
#en msgstr "V838 Monocerotis (star)"
#es msgstr "V838 Monocerotis (estrella)"
#pt msgstr "V838 Monocerotis (estrela)"
#ko msgstr "V838 모노세로티스 (스타)"

msgid "images&nature-nature-plasmalamp"
#en msgstr "Plasma Lamp"
#es msgstr "Lámpara Plasma"
#pt msgstr "Lâmpada de Plasma"
#ko msgstr "플라즈마 램프"

msgid "images&nature-nature-hotairballoons"
#en msgstr "Hot Air Balloons"
#es msgstr "Globos Aerostáticos"
#pt msgstr "Balões de Ar Quente"
#ko msgstr "핫 에어 벌룬"

msgid "images&nature-nature-lakefryxell"
#en msgstr "Lake Fryxell"
#es msgstr "Lago Fryxell"
#pt msgstr "Lago Fryxell"
#ko msgstr "레이크 프라이셀"

msgid "images&nature-nature-lenadelta"
#en msgstr "Lena River Delta"
#es msgstr "Delta del Río Lena"
#pt msgstr "Delta do Rio Lena"
#ko msgstr "레나 리버 델타"

msgid "images&nature-nature-purineNP"
#en msgstr "Purine Nucleoside Phosphorylase"
#es msgstr "<i>Purine Nucleoside Phosphorylase</i>"
#pt msgstr "Purina-Nucleosídeo Fosforilase"
#ko msgstr "푸린 뉴클레오시드 포스포리레이스"

msgid "images&nature-nature-prismaticspring"
#en msgstr "Grand Prismatic Spring"
#es msgstr "La Gran Fuente Prismática"
#pt msgstr "Grande Fonte Prismática"
#ko msgstr "그랜드 프리즘 스프링"

msgid "images&nature-nature-lunarlibration"
#en msgstr "Lunar Libration with Phase 2"
#es msgstr "Libración Lunar con Fase 2"
#pt msgstr "Libração Lunar com Fase 2"
#pt msgstr "루나 리브레이션 페이즈 2"

activities

Multimedia

Camera Activity PO

If you want to edit, go here

msgid "video-mode"
#en msgstr "Watch and Record Videos"
#es msgstr "Mirar y Grabar Videos"
#pt msgstr "Assitir e Gravar Vídeos"
#ko msgstr "비디오 보기와 녹화하기"
#zh-CN msgstr "观看和录制影像"
#zh-TW msgstr "觀看和紀錄影片"

msgid "photo-mode"
#en msgstr "View and Take Photos"
#es msgstr "Ver y Tomar Fotos"
#pt msgstr "Ver e Tirar Fotos"
#ko msgstr "사진 보기와 찍기"
#zh-CN msgstr "浏览和拍摄照片"
#zh-TW msgstr "瀏覽和拍攝照片"

msgid "take-photo"
#en msgst "Take a Picture"
#es msgstr "Tomar una Foto"
#pt msgstr "Tirar uma Foto"
#ko msgstr "사진 찍기"
#zh-CN msgstr "拍摄照片"
#zh-TW msgstr "拍攝照片"
#id-ID msgstr "Ambil Foto"

msgid "take-video"
#en msgst "Start Recording a Video"
#es msgstr "Comenzar a Grabar un Video"
#pt msgstr "Iniciar Gravação de Vídeo"
#ko msgstr "비디오 녹화를 시작하기"
#zh-CN msgstr "开始录制影像"
#zh-TW msgstr "開始紀錄影片"
#id-ID msgstr "Rekam Video"

msgid "stop-video"
#en msgst "Stop Recording your Video"
#es msgstr "Parar de Grabar el Video"
#pt msgstr "Parar Gravação do seu Vídeo"
#ko msgstr "녹화 중지"
#zh-CN msgstr "中止录制影像"
#zh-TW msgstr "停止紀錄影片"

msgid "camera"
#en msgst "Show Live Video"
#es msgstr "Mostrar Video en Vivo"
#pt msgstr "Exibir Vídeo ao Vivo"
#ko msgstr "라이브 비디오 보기"
#zh-CN msgstr "观看影像实况"
#zh-TW msgstr "觀看實況影片"
#id-ID msgstr "Kamera"

Games

Games table:

title description
Etoys running on the OLPC display
Etoys A playground for your mind! It includes 2D and 3D graphics, images, text, particles, presentations, web-pages, videos, sound and MIDI, and so on. With it, you can build smart toys that do cool things. You can also share your creations with your friends!
need screenshot Block Party The classic falling block arcade game. Stack the blocks well and they disappear -- leave holes and they pile up. See how long you can last!
need screenshot Javascript games A collection of javascript games that are known to work, that you can play in your browser.
need screenshot Flash games A collection of games written in Flash that are known to work. You can also play these in your browser.

PO format:

msgid "activities-games-title"
#en msgstr "Browser games"
#es msgstr "Juegos para navegador"
#pt msgstr "Jogos para navegador"
#ko msgstr "브라우저 게임"

msgid "activities-games-battleship-title"
#en msgstr "Battleship"
#es msgstr "Batalla Naval"
#pt msgstr "Batalha Naval"
#ko msgstr "배틀십"

msgid "activities-games-battleship-desc"
#en msgstr "Try to sink all of the computer's ships before he destroys your own fleet"
#es msgstr "Intenta hundir los barcos de la computadora antes de que ella hunda tu flota"
#pt msgstr "Tente afundar os navios do computador antes que ele afunde a sua frota"
#ko msgstr "귀하의 함대가 파괴되기 전에, 컴퓨터 함대를 모두 가라 앉히세요. "

msgid "activities-games-checkers-title"
#en msgstr "Checkers"
#es msgstr "Damas"
#pt msgstr "Damas"
#ko msgstr "체커"

msgid "activities-games-checkers-desc"
#en msgstr "Capture the computer's pieces by jumping them in this classic game of skill"
#es msgstr "Come las piezas de la computadora en este tradicional juego de habilidad"
#pt msgstr "Capturar as peças do computador neste tradicional jogo de habilidade"
#ko msgstr "고전적인 게임 솜씨로 컴퓨터의 피스(pieces)들을 사로잡으세요."

msgid "activities-games-mathquiz-title"
#en msgstr "Math Quiz"
#es msgstr "Prueba de Mate"
#pt msgstr "Prova de Matemática"
#ko msgstr "수학 퀴즈"

msgid "activities-games-mathquiz-desc"
#en msgstr "Test your math skills in addition, subtraction, multiplication, or division modes at various skill levels"
#es msgstr "Somete tus habilidades matemáticas de sumar, restar, multiplicar o dividir a varios niveles de dificultad"
#pt msgstr "Teste suas habilidade matemáticas nos modos de soma, subtração, multiplicação ou divisão, em vários níveis de dificuldade"
#ko msgstr "다양한 난이도로 귀하의 더하기, 빽, 곱하기 또는 나누기 솜씨를 평가해 보세요."

msgid "activities-games-tictactoe-title"
#en msgstr "Tic Tac Toe"
#es msgstr "Ta-te-ti"
#pt msgstr "Jogo da Velha"
#ko msgstr "틱 택 토"


msgid "activities-games-tictactoe-desc"
#en msgstr "Tic tac toe, 3 in a row"
#es msgstr "Ta-te-ti, gato, 3 en fila, etc. Muchos nombres para un juego divertido"
#pt msgstr "Jogo da Velha, 3 em uma linha"
#ko msgstr "틱 택 토, 한 줄에 3개"

po2dict - Python helper function

Takes pofiles as above and turns them into a python dictionary Mchua 13:58, 29 March 2007 (EDT)

# po2dict
# feed it the location of a .po file
# returns dictionary version of that file where
# dictionary[MSGINDEXSTRING][LANGUAGECODE] returns the proper string.
# WARNING NOTE: Does not handle multiline strings.
def po2dict(polocation):
    pofile = open(polocation, 'r')
    translations = {}
    currentmsgid = ""
    for line in pofile:
        if (line[0:5] == "msgid"): # create a new msgid
            currentmsgid = line[5:].lstrip(' "').rstrip(' "\n')
            translations[currentmsgid] = {}
        if (line[4:10] == "msgstr"):
            language = line[1:3] # get 2-letter language id
            translatedstring = line[10:].lstrip(' "').rstrip(' "\n')
            translations[currentmsgid][language] = translatedstring
    pofile.close()
    return translations

# usage example
dictionary = po2dict{"biology.po")
print dictionary["tiaga-notes"]["es"] # should print the Spanish string ("Lagos y muskegs...")