https://gramps-project.org/wiki/api.php?action=feedcontributions&user=Dikiy&feedformat=atomGramps - User contributions [en]2024-03-30T01:25:27ZUser contributionsMediaWiki 1.31.3https://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=24366Translation into Russian2010-11-26T18:16:35Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
'''DRAFT!'''<br />
<br />
I'm using this to make list of terms and LATER find good Russian analog(s) for them. --[[User:Dikiy|Dikiy]] 13:09, 24 November 2010 (EST)<br />
<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person<br />
* private<br />
* privacy<br />
* relation - предлагаю ''родство''<br />
* WebConnect</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=24365Translation into Russian2010-11-26T18:00:07Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
'''DRAFT!'''<br />
<br />
I'm using this to make list of terms and LATER find good Russian analog(s) for them. --[[User:Dikiy|Dikiy]] 13:09, 24 November 2010 (EST)<br />
<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person<br />
* private<br />
* privacy<br />
* relation - предлагаю ''родство''</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=24284Translation into Russian2010-11-24T18:09:35Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
'''DRAFT!'''<br />
<br />
I'm using this to make list of terms and LATER find good Russian analog(s) for them. --[[User:Dikiy|Dikiy]] 13:09, 24 November 2010 (EST)<br />
<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person<br />
* private<br />
* relation - предлагаю ''родство''</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=24283Translation into Russian2010-11-24T18:09:07Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
'''DRAFT!'''<br />
I'm using this to make list of terms and LATER find good Russian analog(s) for them. --[[User:Dikiy|Dikiy]] 13:09, 24 November 2010 (EST)<br />
<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person<br />
* private<br />
* relation - предлагаю ''родство''</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Talk:Translation_into_Russian&diff=24282Talk:Translation into Russian2010-11-24T18:04:32Z<p>Dikiy: </p>
<hr />
<div>Общее замечание - ставьте подпись после своего текста. Ответ на что-то приписывайте ниже и выделяйте отступами. И помните - это не форум!!! есть список рассылки, например.<br />
--[[User:Dikiy|Dikiy]] 13:04, 24 November 2010 (EST)<br />
<br />
Что такое СПД?<br />
:[http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D1%8C_%D0%98%D0%B8%D1%81%D1%83%D1%81%D0%B0_%D0%A5%D1%80%D0%B8%D1%81%D1%82%D0%B0_%D0%A1%D0%B2%D1%8F%D1%82%D1%8B%D1%85_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D1%85_%D0%B4%D0%BD%D0%B5%D0%B9 СПД]<br />
<br />
В таком случае, моё мнение:<br />
1) мормонская церковь - это чуждая России организация (около 19 000 человек), всё равно, что шаманство древних инков<br />
тем более:<br />
- официальная православная церковь считает её сектой <br />
- многие люди склоняются к тому, что данная организация связана с американскими спецслужбами<br />
2) вместо конкретной СПД должна быть - любая религиозная организация<br />
3) Вопрос: каким образом СПД связана с gramps? :)<br />
<br />
<br />
::Note, there is no "real" СПД temples in France. Maybe related to [http://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%B8%D1%86%D0%B8%D0%B7%D0%BC Лаицизм], [http://en.wikipedia.org/wiki/La%C3%AFcit%C3%A9#Contrast_with_the_United_States cultural] and [http://en.wikipedia.org/wiki/Dechristianisation_of_France_during_the_French_Revolution historical] issues ?<br />
::Why СПД into gramps ? <br />
:::Because it is a [http://ru.wikipedia.org/wiki/GEDCOM gedcom thing] ...<br />
<br />
И всё же, нет никаких оснований для добавления СПД в качестве отдельной фичи в gramps. Я не против веры в Бога, церкви, мечетей и т.д. Но меня возмущает невозможность указать ДРУГИХ направлений в христианстве и даже мусульманстве и т.д. И причём здесь gedcom? От него остался лишь формат хранения данных... Тем не менее полагаю от наших с Вами дискуссий разработчики не исправят этот bug.<br />
<br />
::::On Gramps-2.0.x, [http://n4.nabble.com/Developers-site-down-td1806579.html#a1806583 СПД was optional]. <br />
::::If you want we can try to re-enable it and to provide a patch ?<br />
:::::Было бы неплохо<br />
<br />
<br />
По поводу СПД.<br />
1. По религиозным соображеним они ведут очень серьезную работу по сбору генеалогической информации, в том числе оцифровывают и Российские метрические книги. Полезные люди как ни крути :)<br />
2. отдельное поле СПД в информации о персоне НЕ указывает на его вероисповедание, а предназначено для переноса туда записей из баз мормонов. Именно поэтому это поле называется именно так и там не может быть написано например "ислам такого-то толка". Обязательное наличие этого поля мне тоже кажется спорным<br />
3. мормоны придумали формат gedcom и в нем (в формате) много заточек под их генеалогическую систему и ритуалы. gramps в любом случае должен знать и уметь этот формат полностью, т.к. это де-факто стандарт обмена генеалогической информацией между разными программами<br />
--[[User:Dikiy|Dikiy]] 13:04, 24 November 2010 (EST)<br />
<br />
Моё видение перевода:<br />
* Home Person - Центральное лицо<br />
* Person - Личность<br />
* Notes - Заметки!!!<br />
* Double click - Двойной щелчёк<br />
* LDS - "Религия"<br />
* web page - интернет-страница<br />
* base path - базовый путь<br />
* plugin - дополнение<br />
* View - Вид!!!<br />
* Person Editor - Редактор<br />
* media, media object - медиа<br />
* center person - ?? не понял применительно к чему?<br />
* private - частное(-ая)<br />
<br />
home person - согласен с "центральным лицом", но нужно будет посмотреть как это выглядит в строках<br />
person - не согласен; не личности нас интересуют а абстрактные лица<br />
lds - НЕТ!! это не "религия" и не "вероисповедание", это "генеалогические записи мормонов"<br />
plugin - может и так..<br />
media - звучит так же не очень, как и "документ", нужно сильно думать<br />
center person - лицо относительно которого делается отчет<br />
--[[User:Dikiy|Dikiy]] 13:04, 24 November 2010 (EST)</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=24281Translation into Russian2010-11-24T15:05:29Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
'''DRAFT!'''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person<br />
* private<br />
* relation - предлагаю ''родство''</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=20986Translation into Russian2010-02-10T04:31:58Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
'''DRAFT!'''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person<br />
* private</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=20891Translation into Russian2010-01-31T10:45:45Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object<br />
* center person</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Gramps:About/ru&diff=20890Gramps:About/ru2010-01-31T10:42:10Z<p>Dikiy: </p>
<hr />
<div>GRAMPS - генеалогическая программа для Windows и UNIX-подобных операционных систем.<br />
<br />
[[Image:Relationship 2 2.png|thumbnail|Представление отношений]]<br />
<br />
GRAMPS позволяет вам отслеживать ваше фамильное древо. Программа позволяет вам хранить, редактировать, и исследовать генеалогические данные. GRAMPS пытается обеспечить все обычные возможности других генеалогических программ, но, что более важно, обеспечить дополнительные вожможности интеграции не свойственные этим программам. Это способность вводить любые фрагменты информации непосредственно в GRAMPS и манипулировать любым событием во всей базе данных (в любом порядке), что помогает пользователю в исследовании, анализе и корреляции с потенциальными заполнения пробелов отношений.<br />
<br />
На данный момент GRAPMS работает на Linux, BSD, Solaris и Windows. Дополнительная информация о получении GRAMPS на страничке [[Download/ru|загрузок]]<br />
<br />
Дополнительная информация:<br />
*[[Installation/ru|Установка GRAMPS]]<br />
*[[Portal:Using GRAMPS|Как использовать GRAMPS]] (англ.)<br />
*[[Portal:Developers|Помощь в разработке GRAMPS]] (англ.)<br />
*[[How to report bugs|Как сообщить об ошибке]] (англ.)<br />
*[[Screenshots|Скриншоты]] и [[Features|Возможности]] (англ.)<br />
<br />
{{languages|GRAMPS:About|GRAMPS:About/ru}}</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Download&diff=20841Download2010-01-25T09:45:01Z<p>Dikiy: </p>
<hr />
<div>{{languages}}<br />
===The Latest Released Version===<br />
* Version '''GRAMPS 3.1.3''' was released 2009-12-06. All releases of GRAMPS are available from [https://sourceforge.net/projects/gramps/files/ the download page on SourceForge].<br />
<br />
Visit the following page for instructions on:<br />
* [[Installation]]<br />
* [[Installation#Upgrading_GRAMPS|Upgrading]]<br />
<br />
===Officially Supported===<br />
* Only the Linux platform is officially supported as GRAMPS developers use and test the '''source code''' on that platform, fixing any problems that arise due to upgrades.<br />
<br />
{| {{Prettytable}}<br />
! Platform<br />
! GRAMPS<br>Release<br />
! Download<br />
! Note<br />
|-<br />
|<!-- Platform -->Linux<br />
|<!-- GRAMPS<br>Release -->Assorted<br />
|<!-- Download -->[[Installation#Installing_GRAMPS_from_source_code|Installation from Source]]<br />
|<!-- Note -->Building of GRAMPS from source required<br />
|}<br />
<br />
===Community Supported===<br />
*A platform is community supported when users have created an installable version for that platform. Full functionality of GRAMPS is not guaranteed and some components may be disabled. Developers are dependent on the community to fix any issues that arise. The GRAMPS developers aim to have GRAMPS working on all platforms, but have no resources to do specific testing to assure this is the case on release of a new version.<br />
<br />
{| {{Prettytable}}<br />
! Platform<br />
! GRAMPS<br>Release<br />
! Download<br />
! Note<br />
|-<br />
|<!-- Platform -->Windows<br />
|<!-- GRAMPS<br>Release -->3.1.3<br />
|<!-- Download -->[http://sourceforge.net/projects/gramps/files/Stable/gramps-3.1.3-1.exe gramps-3.1.3-1.exe] (6.7 MB)<br />
|<!-- Note -->[[Windows_installer#Installation|Download and Install Windows Dependencies First]]<br />
|-<br />
|<!-- Platform -->Windows<br />
|<!-- GRAMPS<br>Release -->3.1.1<br />
|<!-- Download -->[http://downloads.ormus.info/?path=./PortableApps&file=GrampsPortable_3.1.1.paf.exe GrampsPortable_3.1.1.paf.exe] (23.2 MB)<br />
|<!-- Note -->[http://www.ormus.info/archives/278-Portable-Gramps-Genealogy-in-your-Pocket.html Portable GRAMPS for PortableApps.com] all in one with no dependencies.<br />
|-<br />
|<!-- Platform --><br />
|<!-- GRAMPS<br>Release --><br />
|<!-- Download --><br />
|<!-- Note --><br />
|-<br />
|<!-- Platform -->Linux<br />
|<!-- GRAMPS<br>Release -->Assorted<br />
|<!-- Download -->[[Installation#Automatic_download_and_install_of_GRAMPS|Automatic Installation]]<br />
|<!-- Note -->Depends on Version of Linux Used<br />
|-<br />
|<!-- Platform -->Linux<br />
|<!-- GRAMPS<br>Release -->Assorted<br />
|<!-- Download -->[[Installation#Manual_download_and_install_of_GRAMPS|Manual Installation]]<br />
|<!-- Note -->Depends on Version of Linux Used<br />
|-<br />
|<!-- Platform --><br />
|<!-- GRAMPS<br>Release --><br />
|<!-- Download --><br />
|<!-- Note --><br />
|-<br />
|<!-- Platform -->Linux Live CD<br />
|<!-- GRAMPS<br>Release -->3.0.1<br />
|<!-- Download -->[http://downloads.sourceforge.net/gramps/ubuntu804-genealogy40-gramps301-i386.iso ubuntu804-genealogy40-gramps301-i386.iso]<br>(730 MB)<br />
|<!-- Note -->[[Linux Genealogy CD|Linux Genealogy CD based on Ubuntu 8.04 (Hardy Heron)]]<br />
|-<br />
|<!-- Platform --><br />
|<!-- GRAMPS<br>Release --><br />
|<!-- Download --><br />
|<!-- Note --><br />
|-<br />
|<!-- Platform -->BSD<br />
|<!-- GRAMPS<br>Release -->3.1.3_1<br />
|<!-- Download -->[http://portsmon.freebsd.org/portoverview.py?category=science&portname=gramps FreeBSD port]<br />
|<!-- Note -->[[BSD_page|BSD Information]]<br />
|-<br />
|<!-- Platform --><br />
|<!-- GRAMPS<br>Release --><br />
|<!-- Download --><br />
|<!-- Note --><br />
|-<br />
|<!-- Platform -->Solaris<br />
|<!-- GRAMPS<br>Release -->3.0.1<br />
|<!-- Download -->[[Solaris_page|Solaris Platforms]]<br />
|<!-- Note -->Building of GRAMPS from source required<br />
|-<br />
|<!-- Platform -->Mac OS X<br />
|<!-- GRAMPS<br>Release -->3.1.2<br />
|<!-- Download -->[[Using GRAMPS on Apple Mac]] (28MB)<br />
|<!-- Note -->New and relatively untested (July 2009). There was a missing file. Get it from [http://www.gramps-project.org/bugs/view.php?id=3177 here].<br />
|}<br />
<br />
[[Category:Documentation]]<br />
[[Category:Developers/Installation]]<br />
[[Category:Developers/Packaging]]</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=20787Translation into Russian2010-01-20T16:58:29Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?<br />
* Person Editor<br />
* media, media object</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19772Translation into Russian2009-12-24T04:20:30Z<p>Dikiy: /* Glossary */</p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль, модуль расширения (? так сделано в текущем переводе, повод для обсуждения)<br />
* View - Вид?</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19771Translation into Russian2009-12-24T04:09:13Z<p>Dikiy: /* Glossary */</p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог<br />
* plugin - модуль (? так сделано в текущем переводе, повод для обсуждения)</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=User:Dikiy&diff=19737User:Dikiy2009-12-16T06:46:08Z<p>Dikiy: </p>
<hr />
<div>'''Name''': Andrey (or Andrew) Baznikin<br />
<br />
'''Site''': [http://d.scn.ru d.scn.ru]<br />
<br />
I am building my family tree since 2007.<br />
<br />
I'm translating Gramps into Russian, both code and gettext strings.<br />
Willing to contribute code in the future.</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19736Translation into Russian2009-12-16T06:19:21Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница<br />
* base path - базовый каталог</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translating_Gramps&diff=19735Translating Gramps2009-12-16T03:26:09Z<p>Dikiy: /* Language specific pages */</p>
<hr />
<div>{{languages|Translating GRAMPS}}<br />
<br />
Tips for translators of the GRAMPS program.<br />
[[Category:Translators/Categories]][[Category:Developers/General]]<br />
<br />
==Gettext file format==<br />
<br />
===Header===<br />
<br />
''msginit'' is a GNU utility, called on /po directory, which generates a header for gettext file template : '''gramps.pot'''.<br />
<br />
"Project-Id-Version: PACKAGE VERSION\n"<br />
"Report-Msgid-Bugs-To: \n"<br />
"POT-Creation-Date: 2004-12-30 10:52-0500\n"<br />
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"<br />
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"<br />
"Language-Team: LANGUAGE <LL@li.org>\n"<br />
"MIME-Version: 1.0\n"<br />
"Content-Type: text/plain; charset=CHARSET\n"<br />
"Content-Transfer-Encoding: 8bit\n"<br />
<br />
* ''Project-Id-Version'' : this is the name and version of the package. Fill it in if it has not already been filled in by xgettext. <br />
* ''Report-Msgid-Bugs-To'' : this has already been filled in by xgettext. It contains an email address or URL where you can report bugs in the untranslated strings:<br />
** Strings which are not entire sentences, see the maintainer guidelines in Preparing Strings.<br />
** Strings which use unclear terms or require additional context to be understood.<br />
** Strings which make invalid assumptions about notation of date, time or money.<br />
** Pluralisation problems.<br />
** Incorrect English spelling.<br />
** Incorrect formatting. <br />
* ''POT-Creation-Date'' : this has already been filled in by xgettext.<br />
* ''PO-Revision-Date'' : You don't need to fill this in. It will be filled by the PO file editor when you save the file.<br />
* ''Last-Translator'' : fill in your name and email address (without double quotes).<br />
* ''Language-Team'' : fill in the English name of the language, and the email address or homepage URL of the language team you are part of. Before starting a translation, it is a good idea to get in touch with your translation team, not only to make sure you don't do duplicated work, but also to coordinate difficult linguistic issues. In the Free Translation Project, each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's [http://translationproject.org/ homepage], in the "Teams" area.<br />
<br />
=== msgid / msgstr / comment / fuzzy ===<br />
<br />
#: gramps.py:10<br />
#, fuzzy<br />
msgid "File not found"<br />
msgstr ""<br />
<br />
* text after ''#'' provides a comment.<br />
** The file reference and the line number after ''#:'' <br />
** A comment on code or the main string (''msgid'') after ''#.''<br />
** A comment on your translation (''msgstr'') after ''#''<br />
This will help translator but is optional for having a translation.<br />
* ''#, fuzzy'' could be added because string is not up-to-date. It means that there was a change somewhere (a string has been added, removed or modified) and ''xgettext'' did a guess on what the translation should be. This guess is most likely not entirely correct, but it is often very close.<br />
''fuzzy'' strings are ignored, english string (''msgid'') will be used ! Need to correct/validate entry on your translation editor.<br />
* msgid is the string, present on gramps' code<br />
* msgstr is your translation string<br />
<br />
==Tips for translators==<br />
===Getting started===<br />
<br />
# Always save your translations in UTF-8 encoding<br />
# Don't overwrite the English strings, your translation should be below the original string<br />
# Take heed on special characters. You must have the same number of and types as the original string.<br />
# Verify spelling and grammar on your translation.<br />
# Don't translate "too freely". Your translation should be as close match to the original as possible<br />
# Be consistent with your translations. If you decide on a specific word/phrase for something, stick to that throughout the translation.<br />
# If possible, try the translation before sending<br />
<br />
Translating GRAMPS into a new language means translating English strings used in the GRAMPS interface. To put it shortly, this amounts to<br />
# obtaining the gramps.pot file with the strings to be translated,<br />
# translating the strings in the template, and<br />
# getting the translated file uploaded into gramps SVN repository.<br />
Another avenue of translation is translating the documentation. This is a different and lengthy process and it is decribed in our [[Translating the manual]] page. Here we will concentrate on the interface translation only.<br />
<br />
===Obtaining gramps.pot===<br />
* Download <code>gramps.pot</code> from GRAMPS SVN repository, see [[Brief_introduction_to_SVN| the introduction to SVN]].<br />
* Look for <code>gramps.pot</code> in the directory <code>gramps31/po</code> or if you looking for the trunk version look for <code>gramps.pot</code> in the directory <code>trunk/po</code>.<br />
<br />
===Translating messages===<br />
* Copy <code>gramps.pot</code> to the file named <code>lang.po</code>, according to the language you are translating into (<code>fr.po</code> for French, <code>ru.po</code> for Russian, etc.)<br />
* Use [http://gtranslator.sourceforge.net GTtranslator] (GNOME), [http://kbabel.kde.org/ KBabel] (KDE), [http://userbase.kde.org/Lokalize Lokalize] (KDE, windows), Emacs po-mode, [http://translate.sourceforge.net/wiki/pootling/index pootling] (GNU/Linux, windows), [http://www.poedit.net/ poedit] (GNU/Linux, OSX, windows), or any similar tool designed for translating <code>.po</code> files. If you do not like any of these tools, you can use any text editor to translate messages.<br />
* Even though GRAMPS uses UNICODE (UTF-8) for its character set, you may use your native character set for your translation. Just make sure you specify the character set you are using in the <code>Content-Type</code> line in the <code>.po</code> file. GRAMPS will handle the conversion to UNICODE.<br />
<br />
===Context===<br />
As an extension to standard gettext, strings in GRAMPS can have a context prefix. This prefix should '''not''' be translated, and just be deleted in the translation. More info and an example [[#Translation context|further down]].<br />
<br />
As a special context, you will see the manual context, eg :<br />
'manual|Editing_Dates'<br />
these strings should only be translated if a wiki manual is available in your language. The string refers to a section, eg [[Gramps_3.0_Wiki_Manual_-_Entering_and_Editing_Data:_Detailed#Editing_Dates |Editing_Dates]] in Dutch becomes [[Gramps_3.0_Wiki_Manual_-_Entering_and_Editing_Data:_Detailed/nl#Datums_aanpassen|Datums_aanpassen]].<br />
<br />
===Testing your <code>.po</code> file===<br />
In the directory <code>gramps31/po</code> or the <code>trunk/po</code> run the command: <pre>make</pre> If there are errors in your po file, this will fail and give you an error message. You should correct these errors. If you have trouble understanding the error, try to run the next test, which might give a more verbose output.<br />
<br />
====check_po====<br />
In the directory <code>gramps31/po</code> or the <code>trunk/po</code> run the command: <pre>./check_po lang.po</pre> or <pre>python check_po lang.po > lang</pre> where lang is your language code. This will give you errors in your translation, information on badly translated phrases, ... the output could resemble something like this..<br />
<br />
File: nl.po<br />
Template total: 3816<br />
PO total: 3671<br />
Fuzzy: 125<br />
Untranslated: 12<br />
%s mismatches: 0<br />
%d mismatches: 2<br />
%() name mismatches:9<br />
%() missing s/d: 0<br />
Runaway context: 0<br />
XML special chars: 0<br />
Last character: 15<br />
Shortcut in msgstr: 16<br />
PO Coverage: 99.67%<br />
Template Coverage: 95.89%<br />
Localized at: 97% (previous gramps.pot)<br />
<br />
If you get ''previous gramps.pot'', then you are not using the last ''gramps.pot'', see [[#Updating_your_translation|update your translation]]. ''fuzzy'' and untranslated strings will be ignored, Gramps will use main strings in english.<br />
<br />
-------- %d mismatches --------------<br />
You can see that there are 3816 strings to be translated and the coverage is around 96 %. There are still 12 untranslated strings and some 120 fuzzies. The last one can be ok, but should be checked. Additional information shows e.g. that in 15 strings there is a mismatch with the 'last character':<br />
-------- last character not identical ---------<br />
msg nr: 98, lineno: 602<br />
msgid "Could not make database directory: "<br />
msgstr "Kon geen gegevensbestandsmap aanmaken"<br />
<br />
This is very valuable information, because you can easily see what the problem is, even if you do not understand the language! Clearly the last characters must be ": "<br />
<br />
====statistics====<br />
<br />
In the directory <code>gramps31/po</code> or the <code>trunk/po</code> run the command: <pre>msgfmt --statistics lang.po</pre> or <pre>msgfmt.exe --statistics lang.po</pre> where lang is your language code. This should not throw an error.<br />
Basically this gives the same info in a condensed format: 3533 translated messages, 125 fuzzy translations, 12 untranslated messages.<br />
<br />
====GNU `gettext' utilities====<br />
<br />
[http://www.gnu.org/software/gettext/ GNU `gettext' utilities] provides a few stand-alone programs to massage in various ways the sets of translatable strings, or already translated strings:<br />
<br />
msgattrib - attribute matching and manipulation on message catalog<br />
msgcat - combines several message catalogs<br />
msgcmp - compare message catalog and template<br />
msgcomm - match two message catalogs<br />
msgconv - character set conversion for message catalog<br />
msgen - create English message catalog<br />
msgexec - process translations of message catalog<br />
msgfilter - edit translations of message catalog<br />
msgfmt - compile message catalog to binary format (.po->.mo)<br />
msggrep - pattern matching on message catalog<br />
msginit - initialize a message catalog<br />
msgmerge - merge message catalog and template<br />
msgunfmt - uncompile message catalog from binary format<br />
msguniq - unify duplicate translations in message catalog<br />
<br />
For checking syntax :<br />
msgfmt -c nl.po<br />
<br />
msgfmt.exe -c nl.po<br />
<br />
===Formatting (compiling) <code>.po</code> file===<br />
* Currently, formatting is performed during build time, so you should not have to worry about it. The translated <code>.po</code> file is the product of your work. Check it into SVN if you obtained the permission to do so, or email it to [[Contact|Brian or Benny]] otherwise.<br />
<br />
===Updating your translation===<br />
If you have submitted a translation, changes are that after some weeks/months, new strings are added to GRAMPS, implying you need to update your translation file. <br />
<br />
Assuming you have obtained originally the GRAMPS source tree as explained in [[Brief introduction to SVN]]. Now:<br />
* Update your gramps tree from SVN. This can be done by executing the command <pre>svn up</pre> from the root GRAMPS svn directory. This will download an updated <code>gramps.pot</code> file.<br />
* Use your outdated translation to translate the strings that did not change:<pre>msgmerge lang.po gramps.pot -o newlang.po</pre> or <pre>msgmerge --no-wrap lang.po gramps.pot -o newlang.po</pre> where <code>lang</code> is your language code. The <code>--no-wrap</code> option will prevent changes due to automatic word wrapping, use it if your previous po file was constructed like that. The <code>--no-wrap</code> options allows for more readable SVN diffs.<br />
* Translate all untranslated messages in <code>newlang.po</code>. When you are sure everything is right, rename <code>newlang.po</code> as <code>lang.po</code> and check it into SVN as you did with the original file.<br />
* If command <code>msgmerge</code> is not available on your system, you have to install the <code>}gettext</code> package. For [http://wiki.wxpython.org/index.cgi/Internationalization#head-d8e0d98b64f3878f8bb828aeb41a05bcc6a02cc4 windows users].<br />
<br />
There is also the make target that does the following:<br />
* Create new <code>gramps.pot</code> template from the source code files<br />
cd po<br />
make gramps.pot<br />
or<br />
intltool-update -p<br />
* Updates each <code>po</code> file in the source tree<br />
It may be an overkill for you, but if you feel like using it, you can run:<br />
make update-po <br />
in the <code>po</code> directory. This assumes that you have already succesfully configured the source.<br />
<br />
===Testing your update===<br />
<br />
You can test your update easily with the above mentioned '''check_po''' file. If you downloaded this file, just do:<br />
<pre>python check_po newlang.po</pre>. If everything is ok, the output will be something like this:<br />
File: newlang.po<br />
Template total: 3075<br />
PO total: 3075<br />
Fuzzy: 0<br />
Untranslated: 0<br />
%s mismatches: 0<br />
%d mismatches: 0<br />
%() name mismatches:0<br />
%() missing s/d: 0<br />
Runaway context: 0<br />
XML special chars: 0<br />
Last character: 0<br />
Shortcut in msgstr: 0<br />
PO Coverage: 100.00%<br />
Template Coverage: 100.00%<br />
<br />
===Installing your translation===<br />
<br />
You want to use the new translation immediately, and systemwide?<br />
You can by installing just the contents of the po directory, but you will need to build the source first, so:<br />
./autogen.sh<br />
make<br />
cd po<br />
make --prefix=/usr install #as root !<br />
<br />
This should install your translations to <code>/usr/share/locale/xx/LC_MESSAGES/gramps.mo</code>, with xx being your language. You could of course copy your files manually to that dir with the gramps.mo name.<br />
<br />
Make sure you only install from within the po directory, or you will install the development version of GRAMPS, which is not supported and for testing only!<br />
<br />
==== Running trunk with your translation ====<br />
<br />
The current GRAMPS trunk as of February 2009 by default looks for the i18n data under <code>/usr/local/share/locale</code>. So you can use:<br />
<br />
./autogen.sh<br />
make<br />
cd po<br />
make install #as root !<br />
<br />
This will install the .mo files under /usr/local/share/locale/xx/LC_MESSAGES, since the default prefix is /usr/local<br />
<br />
===== $GRAMPSI18N =====<br />
<br />
Actually you don't even need to install the files in order to test them. This is useful because you can develop GRAMPS without needing superuser privileges. Bear in mind the GRAMPS i18n proccess goes something like this when you use trunk:<br />
<br />
* when you type <code>make</code> in the source tree root (/home/user/trunk e.g.) all the trunk/po/*.po files are compiled into trunk/po/*.gmo files.<br />
* when you type <code>make install</code> inside the /home/user/trunk/po directory, these .gmo files are copied to /usr/local/share/locale/xx/LC_MESSAGES as gramps.mo files.<br />
<br />
But you can change the place where GRAMPS looks for these files by altering the environment variable $GRAMPSI18N. So you could also for intance do something like this and avoid the <code>make install</code> step: (if you are using csh or tcsh the syntax would be a little different)<br />
<br />
[user@localhost /home/user/trunk]$ mkdir -p po/en_GB/LC_MESSAGES<br />
[user@localhost /home/user/trunk]$ cp po/en_GB.gmo po/en_GB/LC_MESSAGES/gramps.mo<br />
[user@localhost /home/user/trunk]$ cd src<br />
[user@localhost /home/user/trunk/src]$ GRAMPSI18N=$PWD/../po LANG=en_GB.UTF-8 python gramps.py<br />
<br />
===== Just testing your translation =====<br />
<br />
If you don't want to compile all translations, you may use ''msgfmt'' utility on /po directory:<br />
<br />
msgfmt your_lang.po<br />
<br />
msgfmt.exe your_lang.po<br />
<br />
this will create a messages.mo file, a compiled version of your ''.po'' file.<br />
Rename messages.mo to gramps.mo and put it on your translation path (''see above'').<br />
<br />
==Hard to Translate Phrases==<br />
Some things are just hard to translate. Below are a few of the more difficult items, along with some suggestions on how to handle them.<br />
===LDS Terminology===<br />
The Church of Jesus Christ of Latter Day Saints (a.k.a. Mormons) maintains a lot of genealogy data. In the United States, they are probably the non-government organization with the most detailed records available. Genealogical research is important to the Mormon church. They are responsible for defining the [[GEDCOM]] format.<br />
<br />
The LDS Church has some specific terminology that can present difficulty in translating. There are two approaches to handling the information.<br />
# If the LDS Church has a presence in your country, contact the LDS Temple in your area and ask them what the correct terminology is in your native language<br />
# If the LDS Church does not have a presence in your country, it would probably be safe to simply not translate the phrases.<br />
These terms include:<br />
# LDS Ordinance names:<br />
#* Sealed to Parents<br />
#* Sealed to Spouse<br />
#* LDS Baptism<br />
#* Endowment<br />
# LDS Status names for Ordinances:<br />
#* Child<br />
#* Cleared<br />
#* Completed<br />
#* Infant<br />
#* Pre-1970<br />
#* Qualified<br />
#* Stillborn<br />
#* Submitted<br />
#* Uncleared<br />
#* BIC (Born In the Covenant)<br />
#* DNS (Do Not Submit)<br />
#* Canceled<br />
#* DNS/CAN (Do Not Submit/Previous sealing cancelled)<br />
<br />
<br />
==Advanced issues==<br />
===Format line parameters===<br />
Format line parameters such as <nowiki>%s</nowiki> and <nowiki>%d</nowiki> '''should not''' be translated. The order of these parameters '''should not''' be changed. Examples:<br />
<br />
English:<br />
Long widowhood: %s was a widow %d years.<br />
<br />
Translation (using Backward English as an example :-):<br />
Gnol doohwodiw: %s saw a wodiw %d sraey.<br />
<br />
Named format line parameters such as <nowiki>%(something)s and %(something)d</nowiki> also '''should not''' be translated. Feel free to change the order of named parameters to correctly phrase the message in your language. Also, use hints provided by the names. Examples:<br />
<br />
English:<br />
Baptized before birth: %(male_name)s<br />
born %(byear)d, baptized %(bapyear)d.<br />
<br />
Translation into Backward English:<br />
Dezitpab erofeb htrib: %(byear)d<br />
nrob %(male_name)s, dezitpab %(bapyear)d.<br />
<br />
In the above example, the verb "born" should be in masculine form (if verbs in your language have gender, that is), since the person born is apparently a male.<br />
<br />
Sometimes those <nowiki>%(something)s</nowiki> are positioned in a text without spaces, like in the example below:<br />
<br />
English:<br />
This person was baptised%(endnotes)s.<br />
<br />
Translation into Backward English:<br />
Siht nosrep saw desitpab%(endnotes)s.<br />
<br />
===Translation context===<br />
In some cases, two different concepts can be expressed by the same word in English and yet require different translations. For example, the '''title of the book''' and the nobility '''title of the person''' are expressed by the same '''Title''' word. However, in other languages different words are needed to describe the book title and the person's title.<br />
<br />
To mitigate such problems, a context can be added to the translation string. A context-enabled string has a vertical line separating the context from the string:<br />
book|Title<br />
person|Title<br />
The correct translation '''should not''' include either the context or the separator. The context is to give the translator idea of what the string means. However, '''both the context and the separator must not be in the translated string''', so in backward english the above is translated into<br />
Eltitkoob<br />
Eltitnosrep<br />
<br />
===Plural forms===<br />
<br />
There was requests for [http://www.gnu.org/software/gettext/manual/html_node/gettext_150.html#Plural-forms plural forms] support.<br />
<br />
First, translators need to check if information is available on .po header. <br />
(See [http://translate.sourceforge.net/wiki/l10n/pluralforms samples])<br />
<br />
# msgid contains the singular string in english<br />
# msgid_plural contains the plural string in english<br />
# msgstr[0] contains the singular translated version (for 1 and sometimes 0, set on header)<br />
# msgstr[1] contains the plural version (for 1 + 1 = 2 )<br />
# msgstr[2] contains the plural form (for 2 + 1 = 3)<br />
<br />
*For language with one form (singular=plural, ''Plural-Forms: nplurals=1; plural=0''), like Chinese, Hungarian or Turkish:<br />
<br />
msgid "%d second"<br />
msgstr_plural "%d seconds"<br />
msgstr [0] "%d 秒"<br />
<br />
*For language with one plural form (''Plural-Forms: nplurals=2; plural=n != 1;''), like english:<br />
<br />
msgid "%d hour"<br />
msgstr_plural "%d hours"<br />
msgstr [0] "%d hour"<br />
msgstr [1] "%d hours"<br />
<br />
*For language with more plural forms (like Czech):<br />
<br />
msgid "%d second"<br />
msgstr_plural "%d seconds"<br />
msgstr [0] "%d sekunda"<br />
msgstr [1] "%d sekundy"<br />
msgstr [2] "%d sekund"<br />
<br />
As a final check, please do ensure that the following command does not throw any errors:<br />
<br />
msgfmt -c filename.po<br />
<br />
===Translating mnemonics===<br />
Mnemonics are accelerator keys you find in labels, accessible by pressing the ALT key together with the mnemonic. You see then in the translated text with a low line, eg '_Help' is shown as 'Help' with a line under the H, and can be put to focus/selected by pressing ALT+h.<br />
<br />
It is nice if mnemonics on a screen are unique, but it is not required. If you use twice the same mnemonic, the user must press repeatedly the accelerator to switch between the different entries. However, note the following rule:<br />
"If duplication of access keys in a window is unavoidable, you should still refrain from duplicating the access keys for any of these buttons that appear in the same window: OK, Cancel, Close, Apply or Help."<br />
<br />
So you should check in your language what the mnemonic key is for those buttons, and avoid using the same in translated text<br />
<br />
'''Warning''': some fonts family will not properly display mnemonics on "g", "j", "p", "q" or "y" as these print the letter over the line under it making it very hard to distinguish the small line. Please avoid to use mnemonics key bindings on these letters. Also try to avoid i and l, as people have difficulty distinguishing between those.<br />
<br />
Capital letters are no problem though, underlining eg G will work just fine as the letter does not write over the line.<br />
<br />
===Translating relationships===<br />
Translating relationships is not done within the <code>.po</code> files, except for occasional <code>father</code> and <code>mother</code> strings here and there in the interfaces and reports. Complete translation of all relationships for the language/culture is done inside a relationship calculator plugin.<br />
<br />
In short, the need for a plugin comes from the impossibility to translate "first cousin twice removed" in languages such as, e.g., German or Russian. See the [[Relationship Calculator]] page for details on why and how to create such a plugin.<br />
<br />
===Translating dates===<br />
Handling date translation is not entirely done within the <code>.po</code> files. Complete handling of date translation for each language/culture is done inside a dedicated date handler module.<br />
<br />
The need for a separate module comes from the requirements to handle culture-specific parsing and displaying of dates. For example, the month and day order is different between most European countries and the US. Also, each language has its own set of acceptable modifier and qualifiers for the date: things like "from X to Y" or "between X and Y" may have different word order. Same with "around", "calculated", "estimated". Add to this calendar names, and you have a compelling need for a dedicated module. See the [[Date Handler]] page for details on why and how to create such a module.<br />
<br />
==Translating man pages==<br />
You can also translated the man pages into your own language.<br />
<br />
For the development (trunk) version you can find the required starting files under the directory (/trunk)/data/man. You will find the files<br />
*Makefile.am<br />
*gramps.1.in<br />
<br />
First off all you must make a directory for your language under data/man.<br />
<code><br />
cd data/man<br />
</code><br />
<br />
and do <code><br />
mkdir xx<br />
</code><br />
<br />
where xx is your languagecode (fr for French, sv for Swedish, etc.) You should use SVN. See [[Brief_introduction_to_SVN| the introduction to SVN]]. Then do <code><br />
svn add xx<br />
svn commit -m "xx dir for man pages" xx<br />
</code><br />
This will add the xx dir under svn revision control and upload the new dir.<br />
Next step is to copy the Makefile.am and gramps.1.in from data/man to your new directory. Translate all relevant strings in the data/man/xx/gramps.1.in file. Change the file data/man/xx/Makefile.am:<br />
*add the line mandir = @mandir@/xx<br />
*change the line && CONFIG_FILES=data/man/xx/$@ $(SHELL)<br />
<br />
Next step: change the file data/man/Makefile: <br />
*add xx to the line SUBDIRS = fr nl sv<br />
<br />
The final step is to alter the file ''Configure.in '':<br />
*add data/man/xx/Makefile to the line AC_CONFIG_FILES([<br />
<br />
Because you added new files, SVN requires that you set the correct propset for those files. Two things are to be done.<br />
<code><br />
svn propset svn:mime-type text/plain xx/gramps.1.in xx/Makefile.am<br />
svn propset svn:eol-type native xx/gramps.1.in xx/Makefile.am<br />
</code><br />
<br />
You could also in the config file of subversion ( HOMEDIR/.subversion/config) enable the auto-prop feature (enable-auto-props = yes) and uncomment the relevant lines in the [auto-props] section.<br />
All changes must be committed and do not forget to change the ChangeLog file.<br />
<br />
You should see no errors when you run the <code><br />
./configure<br />
make<br />
</code> scripts.<br />
<br />
{{man warn|Install|This last step must be done only in the data/man/xx directory. If not, your normal gramps installation will be overwritten. And this step must be done as superuser(su)}}<br />
<code><br />
sudo make install<br />
</code><br />
This will put the gramps.1.gz file into /usr/local/share/man/xx/man1 directory. You could also use a prefix. Then you do:<code><br />
sudo make --prefix=/usr/share install<br />
</code><br />
<br />
To see the result of your work, do:<code><br />
man -L xx gramps<br />
</code><br />
<br />
==Translating wiki manual==<br />
To have the link working in GRAMPS, you need to have or edit the GrampsDisplay.py file to contain your language.<br />
On line 30 of that file, you see:<br />
<br />
MANUALS = {<br />
'nl' : '/nl',<br />
}<br />
<br />
This maps a language code to the extension used on the wiki, so to add french, change this too:<br />
<br />
MANUALS = {<br />
'nl' : '/nl',<br />
'fr': '/fr',<br />
}<br />
<br />
*Every 'manual|...' entry in the gramp.pot file refers to a section in the manual, so make sure to use good section headings so this does not change too much over time.<br />
Note that reports/tools link to a section in the page with the same name as the report name in GRAMPS.<br />
<br />
*You should be able to edit directly on wiki or using tools like [http://translate.sourceforge.net/wiki/toolkit/txt2po txt2po]. Also previous gettext file for the manual and [http://en.wikipedia.org/wiki/Translation_memory Translation Memory] may help you to upgrade deprecated/old gettext files.<br />
<br />
==Language specific pages==<br />
Check out the pages which cover some aspects of translation into a specific language, such as the glossary.<br />
<br />
*[[Translation into Russian|Russian]]<br />
<br />
==Translating third-party plugins==<br />
As [[Third-party Plugins]] are not officially part of GRAMPS and are not supported by the GRAMPS Developers but give users more tools to work with your genealogy data in GRAMPS, we can translate them !<br />
<br />
Trying to avoid duplicate strings which could generate conflicts, [[Media:additional.pot.gz|here an additional template]]. We should be able to copy/paste references at the end of main translation file for supporting translation on third-party plugins.<br />
<br />
===On next major release===<br />
<br />
* See [[Addons_Development#Get_translators_to_translate_your_addon_into_multiple_languages|3rd-party addon for GRAMPS 3.2]].</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19734Translation into Russian2009-12-15T16:47:20Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)<br />
* web page - веб-страница</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19733Translation into Russian2009-12-15T16:24:21Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
''Its mostly current behavior and subject of discussion and change''<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - как лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=User_talk:Putnik&diff=19732User talk:Putnik2009-12-15T15:59:08Z<p>Dikiy: New page: о! собираетесь что-то переводить?</p>
<hr />
<div>о! собираетесь что-то переводить?</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=User_talk:Dikiy&diff=19731User talk:Dikiy2009-12-15T15:58:43Z<p>Dikiy: Removing all content from page</p>
<hr />
<div></div>Dikiyhttps://gramps-project.org/wiki/index.php?title=User_talk:Dikiy&diff=19730User talk:Dikiy2009-12-15T15:58:30Z<p>Dikiy: New page: о! собираетесь что-то переводить?</p>
<hr />
<div>о! собираетесь что-то переводить?</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19729Translation into Russian2009-12-15T15:40:29Z<p>Dikiy: </p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
==Glossary==<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - где лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")<br />
* Double click - Двойной щелчек<br />
* LDS - СПД или "церковь СПД" (?? подумать)</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=User:Dikiy&diff=19727User:Dikiy2009-12-15T15:07:30Z<p>Dikiy: </p>
<hr />
<div>'''Name''': Andrey (or Andrew) Baznikin<br />
<br />
'''Site''': [http://d.scn.ru d.scn.ru]</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=User:Dikiy&diff=19726User:Dikiy2009-12-15T15:03:32Z<p>Dikiy: New page: '''Name''': Andrey (or Andrew) Baznikin '''Site''': http://d.scn.ru</p>
<hr />
<div>'''Name''': Andrey (or Andrew) Baznikin<br />
'''Site''': [[http://d.scn.ru]]</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translation_into_Russian&diff=19725Translation into Russian2009-12-15T15:00:20Z<p>Dikiy: New page: Category:Translators/CategoriesCategory:Developers/General ==Glossary== * Home Person - Базовое лицо * Person - Лицо или персона, в зависимост...</p>
<hr />
<div>[[Category:Translators/Categories]][[Category:Developers/General]]<br />
<br />
==Glossary==<br />
<br />
* Home Person - Базовое лицо<br />
* Person - Лицо или персона, в зависимости от контекста - где лучше звучит<br />
* Notes - Комментарии (предложение - использовать "Заметки")</div>Dikiyhttps://gramps-project.org/wiki/index.php?title=Translating_Gramps&diff=19724Translating Gramps2009-12-15T14:58:20Z<p>Dikiy: Links to language specific pages</p>
<hr />
<div>{{languages|Translating GRAMPS}}<br />
<br />
Tips for translators of the GRAMPS program.<br />
[[Category:Translators/Categories]][[Category:Developers/General]]<br />
<br />
==Gettext file format==<br />
<br />
===Header===<br />
<br />
''msginit'' is a GNU utility, called on /po directory, which generates a header for gettext file template : '''gramps.pot'''.<br />
<br />
"Project-Id-Version: PACKAGE VERSION\n"<br />
"Report-Msgid-Bugs-To: \n"<br />
"POT-Creation-Date: 2004-12-30 10:52-0500\n"<br />
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"<br />
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"<br />
"Language-Team: LANGUAGE <LL@li.org>\n"<br />
"MIME-Version: 1.0\n"<br />
"Content-Type: text/plain; charset=CHARSET\n"<br />
"Content-Transfer-Encoding: 8bit\n"<br />
<br />
* ''Project-Id-Version'' : this is the name and version of the package. Fill it in if it has not already been filled in by xgettext. <br />
* ''Report-Msgid-Bugs-To'' : this has already been filled in by xgettext. It contains an email address or URL where you can report bugs in the untranslated strings:<br />
** Strings which are not entire sentences, see the maintainer guidelines in Preparing Strings.<br />
** Strings which use unclear terms or require additional context to be understood.<br />
** Strings which make invalid assumptions about notation of date, time or money.<br />
** Pluralisation problems.<br />
** Incorrect English spelling.<br />
** Incorrect formatting. <br />
* ''POT-Creation-Date'' : this has already been filled in by xgettext.<br />
* ''PO-Revision-Date'' : You don't need to fill this in. It will be filled by the PO file editor when you save the file.<br />
* ''Last-Translator'' : fill in your name and email address (without double quotes).<br />
* ''Language-Team'' : fill in the English name of the language, and the email address or homepage URL of the language team you are part of. Before starting a translation, it is a good idea to get in touch with your translation team, not only to make sure you don't do duplicated work, but also to coordinate difficult linguistic issues. In the Free Translation Project, each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's [http://translationproject.org/ homepage], in the "Teams" area.<br />
<br />
=== msgid / msgstr / comment / fuzzy ===<br />
<br />
#: gramps.py:10<br />
#, fuzzy<br />
msgid "File not found"<br />
msgstr ""<br />
<br />
* text after ''#'' provides a comment.<br />
** The file reference and the line number after ''#:'' <br />
** A comment on code or the main string (''msgid'') after ''#.''<br />
** A comment on your translation (''msgstr'') after ''#''<br />
This will help translator but is optional for having a translation.<br />
* ''#, fuzzy'' could be added because string is not up-to-date. It means that there was a change somewhere (a string has been added, removed or modified) and ''xgettext'' did a guess on what the translation should be. This guess is most likely not entirely correct, but it is often very close.<br />
''fuzzy'' strings are ignored, english string (''msgid'') will be used ! Need to correct/validate entry on your translation editor.<br />
* msgid is the string, present on gramps' code<br />
* msgstr is your translation string<br />
<br />
==Tips for translators==<br />
===Getting started===<br />
<br />
# Always save your translations in UTF-8 encoding<br />
# Don't overwrite the English strings, your translation should be below the original string<br />
# Take heed on special characters. You must have the same number of and types as the original string.<br />
# Verify spelling and grammar on your translation.<br />
# Don't translate "too freely". Your translation should be as close match to the original as possible<br />
# Be consistent with your translations. If you decide on a specific word/phrase for something, stick to that throughout the translation.<br />
# If possible, try the translation before sending<br />
<br />
Translating GRAMPS into a new language means translating English strings used in the GRAMPS interface. To put it shortly, this amounts to<br />
# obtaining the gramps.pot file with the strings to be translated,<br />
# translating the strings in the template, and<br />
# getting the translated file uploaded into gramps SVN repository.<br />
Another avenue of translation is translating the documentation. This is a different and lengthy process and it is decribed in our [[Translating the manual]] page. Here we will concentrate on the interface translation only.<br />
<br />
===Obtaining gramps.pot===<br />
* Download <code>gramps.pot</code> from GRAMPS SVN repository, see [[Brief_introduction_to_SVN| the introduction to SVN]].<br />
* Look for <code>gramps.pot</code> in the directory <code>gramps31/po</code> or if you looking for the trunk version look for <code>gramps.pot</code> in the directory <code>trunk/po</code>.<br />
<br />
===Translating messages===<br />
* Copy <code>gramps.pot</code> to the file named <code>lang.po</code>, according to the language you are translating into (<code>fr.po</code> for French, <code>ru.po</code> for Russian, etc.)<br />
* Use [http://gtranslator.sourceforge.net GTtranslator] (GNOME), [http://kbabel.kde.org/ KBabel] (KDE), [http://userbase.kde.org/Lokalize Lokalize] (KDE, windows), Emacs po-mode, [http://translate.sourceforge.net/wiki/pootling/index pootling] (GNU/Linux, windows), [http://www.poedit.net/ poedit] (GNU/Linux, OSX, windows), or any similar tool designed for translating <code>.po</code> files. If you do not like any of these tools, you can use any text editor to translate messages.<br />
* Even though GRAMPS uses UNICODE (UTF-8) for its character set, you may use your native character set for your translation. Just make sure you specify the character set you are using in the <code>Content-Type</code> line in the <code>.po</code> file. GRAMPS will handle the conversion to UNICODE.<br />
<br />
===Context===<br />
As an extension to standard gettext, strings in GRAMPS can have a context prefix. This prefix should '''not''' be translated, and just be deleted in the translation. More info and an example [[#Translation context|further down]].<br />
<br />
As a special context, you will see the manual context, eg :<br />
'manual|Editing_Dates'<br />
these strings should only be translated if a wiki manual is available in your language. The string refers to a section, eg [[Gramps_3.0_Wiki_Manual_-_Entering_and_Editing_Data:_Detailed#Editing_Dates |Editing_Dates]] in Dutch becomes [[Gramps_3.0_Wiki_Manual_-_Entering_and_Editing_Data:_Detailed/nl#Datums_aanpassen|Datums_aanpassen]].<br />
<br />
===Testing your <code>.po</code> file===<br />
In the directory <code>gramps31/po</code> or the <code>trunk/po</code> run the command: <pre>make</pre> If there are errors in your po file, this will fail and give you an error message. You should correct these errors. If you have trouble understanding the error, try to run the next test, which might give a more verbose output.<br />
<br />
====check_po====<br />
In the directory <code>gramps31/po</code> or the <code>trunk/po</code> run the command: <pre>./check_po lang.po</pre> or <pre>python check_po lang.po > lang</pre> where lang is your language code. This will give you errors in your translation, information on badly translated phrases, ... the output could resemble something like this..<br />
<br />
File: nl.po<br />
Template total: 3816<br />
PO total: 3671<br />
Fuzzy: 125<br />
Untranslated: 12<br />
%s mismatches: 0<br />
%d mismatches: 2<br />
%() name mismatches:9<br />
%() missing s/d: 0<br />
Runaway context: 0<br />
XML special chars: 0<br />
Last character: 15<br />
Shortcut in msgstr: 16<br />
PO Coverage: 99.67%<br />
Template Coverage: 95.89%<br />
Localized at: 97% (previous gramps.pot)<br />
<br />
If you get ''previous gramps.pot'', then you are not using the last ''gramps.pot'', see [[#Updating_your_translation|update your translation]]. ''fuzzy'' and untranslated strings will be ignored, Gramps will use main strings in english.<br />
<br />
-------- %d mismatches --------------<br />
You can see that there are 3816 strings to be translated and the coverage is around 96 %. There are still 12 untranslated strings and some 120 fuzzies. The last one can be ok, but should be checked. Additional information shows e.g. that in 15 strings there is a mismatch with the 'last character':<br />
-------- last character not identical ---------<br />
msg nr: 98, lineno: 602<br />
msgid "Could not make database directory: "<br />
msgstr "Kon geen gegevensbestandsmap aanmaken"<br />
<br />
This is very valuable information, because you can easily see what the problem is, even if you do not understand the language! Clearly the last characters must be ": "<br />
<br />
====statistics====<br />
<br />
In the directory <code>gramps31/po</code> or the <code>trunk/po</code> run the command: <pre>msgfmt --statistics lang.po</pre> or <pre>msgfmt.exe --statistics lang.po</pre> where lang is your language code. This should not throw an error.<br />
Basically this gives the same info in a condensed format: 3533 translated messages, 125 fuzzy translations, 12 untranslated messages.<br />
<br />
====GNU `gettext' utilities====<br />
<br />
[http://www.gnu.org/software/gettext/ GNU `gettext' utilities] provides a few stand-alone programs to massage in various ways the sets of translatable strings, or already translated strings:<br />
<br />
msgattrib - attribute matching and manipulation on message catalog<br />
msgcat - combines several message catalogs<br />
msgcmp - compare message catalog and template<br />
msgcomm - match two message catalogs<br />
msgconv - character set conversion for message catalog<br />
msgen - create English message catalog<br />
msgexec - process translations of message catalog<br />
msgfilter - edit translations of message catalog<br />
msgfmt - compile message catalog to binary format (.po->.mo)<br />
msggrep - pattern matching on message catalog<br />
msginit - initialize a message catalog<br />
msgmerge - merge message catalog and template<br />
msgunfmt - uncompile message catalog from binary format<br />
msguniq - unify duplicate translations in message catalog<br />
<br />
For checking syntax :<br />
msgfmt -c nl.po<br />
<br />
msgfmt.exe -c nl.po<br />
<br />
===Formatting (compiling) <code>.po</code> file===<br />
* Currently, formatting is performed during build time, so you should not have to worry about it. The translated <code>.po</code> file is the product of your work. Check it into SVN if you obtained the permission to do so, or email it to [[Contact|Brian or Benny]] otherwise.<br />
<br />
===Updating your translation===<br />
If you have submitted a translation, changes are that after some weeks/months, new strings are added to GRAMPS, implying you need to update your translation file. <br />
<br />
Assuming you have obtained originally the GRAMPS source tree as explained in [[Brief introduction to SVN]]. Now:<br />
* Update your gramps tree from SVN. This can be done by executing the command <pre>svn up</pre> from the root GRAMPS svn directory. This will download an updated <code>gramps.pot</code> file.<br />
* Use your outdated translation to translate the strings that did not change:<pre>msgmerge lang.po gramps.pot -o newlang.po</pre> or <pre>msgmerge --no-wrap lang.po gramps.pot -o newlang.po</pre> where <code>lang</code> is your language code. The <code>--no-wrap</code> option will prevent changes due to automatic word wrapping, use it if your previous po file was constructed like that. The <code>--no-wrap</code> options allows for more readable SVN diffs.<br />
* Translate all untranslated messages in <code>newlang.po</code>. When you are sure everything is right, rename <code>newlang.po</code> as <code>lang.po</code> and check it into SVN as you did with the original file.<br />
* If command <code>msgmerge</code> is not available on your system, you have to install the <code>}gettext</code> package. For [http://wiki.wxpython.org/index.cgi/Internationalization#head-d8e0d98b64f3878f8bb828aeb41a05bcc6a02cc4 windows users].<br />
<br />
There is also the make target that does the following:<br />
* Create new <code>gramps.pot</code> template from the source code files<br />
cd po<br />
make gramps.pot<br />
or<br />
intltool-update -p<br />
* Updates each <code>po</code> file in the source tree<br />
It may be an overkill for you, but if you feel like using it, you can run:<br />
make update-po <br />
in the <code>po</code> directory. This assumes that you have already succesfully configured the source.<br />
<br />
===Testing your update===<br />
<br />
You can test your update easily with the above mentioned '''check_po''' file. If you downloaded this file, just do:<br />
<pre>python check_po newlang.po</pre>. If everything is ok, the output will be something like this:<br />
File: newlang.po<br />
Template total: 3075<br />
PO total: 3075<br />
Fuzzy: 0<br />
Untranslated: 0<br />
%s mismatches: 0<br />
%d mismatches: 0<br />
%() name mismatches:0<br />
%() missing s/d: 0<br />
Runaway context: 0<br />
XML special chars: 0<br />
Last character: 0<br />
Shortcut in msgstr: 0<br />
PO Coverage: 100.00%<br />
Template Coverage: 100.00%<br />
<br />
===Installing your translation===<br />
<br />
You want to use the new translation immediately, and systemwide?<br />
You can by installing just the contents of the po directory, but you will need to build the source first, so:<br />
./autogen.sh<br />
make<br />
cd po<br />
make --prefix=/usr install #as root !<br />
<br />
This should install your translations to <code>/usr/share/locale/xx/LC_MESSAGES/gramps.mo</code>, with xx being your language. You could of course copy your files manually to that dir with the gramps.mo name.<br />
<br />
Make sure you only install from within the po directory, or you will install the development version of GRAMPS, which is not supported and for testing only!<br />
<br />
==== Running trunk with your translation ====<br />
<br />
The current GRAMPS trunk as of February 2009 by default looks for the i18n data under <code>/usr/local/share/locale</code>. So you can use:<br />
<br />
./autogen.sh<br />
make<br />
cd po<br />
make install #as root !<br />
<br />
This will install the .mo files under /usr/local/share/locale/xx/LC_MESSAGES, since the default prefix is /usr/local<br />
<br />
===== $GRAMPSI18N =====<br />
<br />
Actually you don't even need to install the files in order to test them. This is useful because you can develop GRAMPS without needing superuser privileges. Bear in mind the GRAMPS i18n proccess goes something like this when you use trunk:<br />
<br />
* when you type <code>make</code> in the source tree root (/home/user/trunk e.g.) all the trunk/po/*.po files are compiled into trunk/po/*.gmo files.<br />
* when you type <code>make install</code> inside the /home/user/trunk/po directory, these .gmo files are copied to /usr/local/share/locale/xx/LC_MESSAGES as gramps.mo files.<br />
<br />
But you can change the place where GRAMPS looks for these files by altering the environment variable $GRAMPSI18N. So you could also for intance do something like this and avoid the <code>make install</code> step: (if you are using csh or tcsh the syntax would be a little different)<br />
<br />
[user@localhost /home/user/trunk]$ mkdir -p po/en_GB/LC_MESSAGES<br />
[user@localhost /home/user/trunk]$ cp po/en_GB.gmo po/en_GB/LC_MESSAGES/gramps.mo<br />
[user@localhost /home/user/trunk]$ cd src<br />
[user@localhost /home/user/trunk/src]$ GRAMPSI18N=$PWD/../po LANG=en_GB.UTF-8 python gramps.py<br />
<br />
===== Just testing your translation =====<br />
<br />
If you don't want to compile all translations, you may use ''msgfmt'' utility on /po directory:<br />
<br />
msgfmt your_lang.po<br />
<br />
msgfmt.exe your_lang.po<br />
<br />
this will create a messages.mo file, a compiled version of your ''.po'' file.<br />
Rename messages.mo to gramps.mo and put it on your translation path (''see above'').<br />
<br />
==Hard to Translate Phrases==<br />
Some things are just hard to translate. Below are a few of the more difficult items, along with some suggestions on how to handle them.<br />
===LDS Terminology===<br />
The Church of Jesus Christ of Latter Day Saints (a.k.a. Mormons) maintains a lot of genealogy data. In the United States, they are probably the non-government organization with the most detailed records available. Genealogical research is important to the Mormon church. They are responsible for defining the [[GEDCOM]] format.<br />
<br />
The LDS Church has some specific terminology that can present difficulty in translating. There are two approaches to handling the information.<br />
# If the LDS Church has a presence in your country, contact the LDS Temple in your area and ask them what the correct terminology is in your native language<br />
# If the LDS Church does not have a presence in your country, it would probably be safe to simply not translate the phrases.<br />
These terms include:<br />
# LDS Ordinance names:<br />
#* Sealed to Parents<br />
#* Sealed to Spouse<br />
#* LDS Baptism<br />
#* Endowment<br />
# LDS Status names for Ordinances:<br />
#* Child<br />
#* Cleared<br />
#* Completed<br />
#* Infant<br />
#* Pre-1970<br />
#* Qualified<br />
#* Stillborn<br />
#* Submitted<br />
#* Uncleared<br />
#* BIC (Born In the Covenant)<br />
#* DNS (Do Not Submit)<br />
#* Canceled<br />
#* DNS/CAN (Do Not Submit/Previous sealing cancelled)<br />
<br />
<br />
==Advanced issues==<br />
===Format line parameters===<br />
Format line parameters such as <nowiki>%s</nowiki> and <nowiki>%d</nowiki> '''should not''' be translated. The order of these parameters '''should not''' be changed. Examples:<br />
<br />
English:<br />
Long widowhood: %s was a widow %d years.<br />
<br />
Translation (using Backward English as an example :-):<br />
Gnol doohwodiw: %s saw a wodiw %d sraey.<br />
<br />
Named format line parameters such as <nowiki>%(something)s and %(something)d</nowiki> also '''should not''' be translated. Feel free to change the order of named parameters to correctly phrase the message in your language. Also, use hints provided by the names. Examples:<br />
<br />
English:<br />
Baptized before birth: %(male_name)s<br />
born %(byear)d, baptized %(bapyear)d.<br />
<br />
Translation into Backward English:<br />
Dezitpab erofeb htrib: %(byear)d<br />
nrob %(male_name)s, dezitpab %(bapyear)d.<br />
<br />
In the above example, the verb "born" should be in masculine form (if verbs in your language have gender, that is), since the person born is apparently a male.<br />
<br />
Sometimes those <nowiki>%(something)s</nowiki> are positioned in a text without spaces, like in the example below:<br />
<br />
English:<br />
This person was baptised%(endnotes)s.<br />
<br />
Translation into Backward English:<br />
Siht nosrep saw desitpab%(endnotes)s.<br />
<br />
===Translation context===<br />
In some cases, two different concepts can be expressed by the same word in English and yet require different translations. For example, the '''title of the book''' and the nobility '''title of the person''' are expressed by the same '''Title''' word. However, in other languages different words are needed to describe the book title and the person's title.<br />
<br />
To mitigate such problems, a context can be added to the translation string. A context-enabled string has a vertical line separating the context from the string:<br />
book|Title<br />
person|Title<br />
The correct translation '''should not''' include either the context or the separator. The context is to give the translator idea of what the string means. However, '''both the context and the separator must not be in the translated string''', so in backward english the above is translated into<br />
Eltitkoob<br />
Eltitnosrep<br />
<br />
===Plural forms===<br />
<br />
There was requests for [http://www.gnu.org/software/gettext/manual/html_node/gettext_150.html#Plural-forms plural forms] support.<br />
<br />
First, translators need to check if information is available on .po header. <br />
(See [http://translate.sourceforge.net/wiki/l10n/pluralforms samples])<br />
<br />
# msgid contains the singular string in english<br />
# msgid_plural contains the plural string in english<br />
# msgstr[0] contains the singular translated version (for 1 and sometimes 0, set on header)<br />
# msgstr[1] contains the plural version (for 1 + 1 = 2 )<br />
# msgstr[2] contains the plural form (for 2 + 1 = 3)<br />
<br />
*For language with one form (singular=plural, ''Plural-Forms: nplurals=1; plural=0''), like Chinese, Hungarian or Turkish:<br />
<br />
msgid "%d second"<br />
msgstr_plural "%d seconds"<br />
msgstr [0] "%d 秒"<br />
<br />
*For language with one plural form (''Plural-Forms: nplurals=2; plural=n != 1;''), like english:<br />
<br />
msgid "%d hour"<br />
msgstr_plural "%d hours"<br />
msgstr [0] "%d hour"<br />
msgstr [1] "%d hours"<br />
<br />
*For language with more plural forms (like Czech):<br />
<br />
msgid "%d second"<br />
msgstr_plural "%d seconds"<br />
msgstr [0] "%d sekunda"<br />
msgstr [1] "%d sekundy"<br />
msgstr [2] "%d sekund"<br />
<br />
As a final check, please do ensure that the following command does not throw any errors:<br />
<br />
msgfmt -c filename.po<br />
<br />
===Translating mnemonics===<br />
Mnemonics are accelerator keys you find in labels, accessible by pressing the ALT key together with the mnemonic. You see then in the translated text with a low line, eg '_Help' is shown as 'Help' with a line under the H, and can be put to focus/selected by pressing ALT+h.<br />
<br />
It is nice if mnemonics on a screen are unique, but it is not required. If you use twice the same mnemonic, the user must press repeatedly the accelerator to switch between the different entries. However, note the following rule:<br />
"If duplication of access keys in a window is unavoidable, you should still refrain from duplicating the access keys for any of these buttons that appear in the same window: OK, Cancel, Close, Apply or Help."<br />
<br />
So you should check in your language what the mnemonic key is for those buttons, and avoid using the same in translated text<br />
<br />
'''Warning''': some fonts family will not properly display mnemonics on "g", "j", "p", "q" or "y" as these print the letter over the line under it making it very hard to distinguish the small line. Please avoid to use mnemonics key bindings on these letters. Also try to avoid i and l, as people have difficulty distinguishing between those.<br />
<br />
Capital letters are no problem though, underlining eg G will work just fine as the letter does not write over the line.<br />
<br />
===Translating relationships===<br />
Translating relationships is not done within the <code>.po</code> files, except for occasional <code>father</code> and <code>mother</code> strings here and there in the interfaces and reports. Complete translation of all relationships for the language/culture is done inside a relationship calculator plugin.<br />
<br />
In short, the need for a plugin comes from the impossibility to translate "first cousin twice removed" in languages such as, e.g., German or Russian. See the [[Relationship Calculator]] page for details on why and how to create such a plugin.<br />
<br />
===Translating dates===<br />
Handling date translation is not entirely done within the <code>.po</code> files. Complete handling of date translation for each language/culture is done inside a dedicated date handler module.<br />
<br />
The need for a separate module comes from the requirements to handle culture-specific parsing and displaying of dates. For example, the month and day order is different between most European countries and the US. Also, each language has its own set of acceptable modifier and qualifiers for the date: things like "from X to Y" or "between X and Y" may have different word order. Same with "around", "calculated", "estimated". Add to this calendar names, and you have a compelling need for a dedicated module. See the [[Date Handler]] page for details on why and how to create such a module.<br />
<br />
==Translating man pages==<br />
You can also translated the man pages into your own language.<br />
<br />
For the development (trunk) version you can find the required starting files under the directory (/trunk)/data/man. You will find the files<br />
*Makefile.am<br />
*gramps.1.in<br />
<br />
First off all you must make a directory for your language under data/man.<br />
<code><br />
cd data/man<br />
</code><br />
<br />
and do <code><br />
mkdir xx<br />
</code><br />
<br />
where xx is your languagecode (fr for French, sv for Swedish, etc.) You should use SVN. See [[Brief_introduction_to_SVN| the introduction to SVN]]. Then do <code><br />
svn add xx<br />
svn commit -m "xx dir for man pages" xx<br />
</code><br />
This will add the xx dir under svn revision control and upload the new dir.<br />
Next step is to copy the Makefile.am and gramps.1.in from data/man to your new directory. Translate all relevant strings in the data/man/xx/gramps.1.in file. Change the file data/man/xx/Makefile.am:<br />
*add the line mandir = @mandir@/xx<br />
*change the line && CONFIG_FILES=data/man/xx/$@ $(SHELL)<br />
<br />
Next step: change the file data/man/Makefile: <br />
*add xx to the line SUBDIRS = fr nl sv<br />
<br />
The final step is to alter the file ''Configure.in '':<br />
*add data/man/xx/Makefile to the line AC_CONFIG_FILES([<br />
<br />
Because you added new files, SVN requires that you set the correct propset for those files. Two things are to be done.<br />
<code><br />
svn propset svn:mime-type text/plain xx/gramps.1.in xx/Makefile.am<br />
svn propset svn:eol-type native xx/gramps.1.in xx/Makefile.am<br />
</code><br />
<br />
You could also in the config file of subversion ( HOMEDIR/.subversion/config) enable the auto-prop feature (enable-auto-props = yes) and uncomment the relevant lines in the [auto-props] section.<br />
All changes must be committed and do not forget to change the ChangeLog file.<br />
<br />
You should see no errors when you run the <code><br />
./configure<br />
make<br />
</code> scripts.<br />
<br />
{{man warn|Install|This last step must be done only in the data/man/xx directory. If not, your normal gramps installation will be overwritten. And this step must be done as superuser(su)}}<br />
<code><br />
sudo make install<br />
</code><br />
This will put the gramps.1.gz file into /usr/local/share/man/xx/man1 directory. You could also use a prefix. Then you do:<code><br />
sudo make --prefix=/usr/share install<br />
</code><br />
<br />
To see the result of your work, do:<code><br />
man -L xx gramps<br />
</code><br />
<br />
==Translating wiki manual==<br />
To have the link working in GRAMPS, you need to have or edit the GrampsDisplay.py file to contain your language.<br />
On line 30 of that file, you see:<br />
<br />
MANUALS = {<br />
'nl' : '/nl',<br />
}<br />
<br />
This maps a language code to the extension used on the wiki, so to add french, change this too:<br />
<br />
MANUALS = {<br />
'nl' : '/nl',<br />
'fr': '/fr',<br />
}<br />
<br />
*Every 'manual|...' entry in the gramp.pot file refers to a section in the manual, so make sure to use good section headings so this does not change too much over time.<br />
Note that reports/tools link to a section in the page with the same name as the report name in GRAMPS.<br />
<br />
*You should be able to edit directly on wiki or using tools like [http://translate.sourceforge.net/wiki/toolkit/txt2po txt2po]. Also previous gettext file for the manual and [http://en.wikipedia.org/wiki/Translation_memory Translation Memory] may help you to upgrade deprecated/old gettext files.<br />
<br />
==Language specific pages==<br />
Check out pages which covers some aspects of translation into specific language, such as glossary.<br />
<br />
*[[Translation into Russian|Russian]]<br />
<br />
==Translating third-party plugins==<br />
As [[Third-party Plugins]] are not officially part of GRAMPS and are not supported by the GRAMPS Developers but give users more tools to work with your genealogy data in GRAMPS, we can translate them !<br />
<br />
Trying to avoid duplicate strings which could generate conflicts, [[Media:additional.pot.gz|here an additional template]]. We should be able to copy/paste references at the end of main translation file for supporting translation on third-party plugins.<br />
<br />
===On next major release===<br />
<br />
* See [[Addons_Development#Get_translators_to_translate_your_addon_into_multiple_languages|3rd-party addon for GRAMPS 3.2]].</div>Dikiy