久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Gallery: 本地化:修訂間差異

來自站長百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索
無編輯摘要
無編輯摘要
?
第65行: 第65行:
: (or http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html)
: (or http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html)


In most cases you will need just the language code, such as "de" for German.? To provide country specific translations for a language used in multiple countries you can use a code in the format xx_XX, such as "pt_BR" for Portuguese/Brazil.? If you are unsure which to use, include both language and country.? If you find a translation for your language already exists then move on to [[#Maintaining_a_localization|Maintaining a localization]].
在大多數(shù)情況下,你只需要語言代碼即可,如德語就是"de"。要為多個(gè)國家中提供特定國家語言的翻譯,你可以使用這樣的代碼格式,xx_XX,例如"pt_BR"表示葡萄牙語/巴西。如果你確定該用哪一個(gè),包括語言和國家。如果你發(fā)現(xiàn)已有你使用語言的翻譯的話,請(qǐng)接著看 [[#本地化的維護(hù)|本地化的維護(hù)]]


Once you've chosen the code, you need to create a new .po file for
一旦選好了代碼,就需要為你的代碼新建一個(gè).po
your code.? Let's assume that you chose "de".? For each po directory,
文件。假定你選擇是的"de"。那么對(duì)各po目錄,
you need to do this:
你需要做的是:


<pre>
<pre>
第75行: 第75行:
</pre>
</pre>


This will find all text that is marked for localization ([[Gallery2:Tpl_Reference#Gallery_Custom_Tags|{g->text}]] in tpl files, translate() or i18n() in php code) and create a po file that is ready to be translated.
這將找到該本地化標(biāo)記的所有文本(tpl文件中的[[Gallery:Tpl_Reference#Gallery_Custom_Tags|{g->text}]],php代碼中的translate()或i18n()),并創(chuàng)建一個(gè)即將進(jìn)行翻譯的po文件。


有關(guān)文本編輯器。
有關(guān)文本編輯器。
第212行: 第212行:
添加到站點(diǎn)中,使用外觀主題設(shè)定就可以做到。
添加到站點(diǎn)中,使用外觀主題設(shè)定就可以做到。


'''注:''' 如果語言修改沒有起效,請(qǐng)回顧一下[[Gallery2:Language_Settings|語言設(shè)定]]的優(yōu)先級(jí)(會(huì)話語言(Session language) > 用戶偏好(user preferences) > 站點(diǎn)范圍的默認(rèn)語言(site wide default language))。如果有疑慮的話,可以使用語言區(qū)塊或在用戶偏好中反復(fù)嘗試。
'''注:''' 如果語言修改沒有起效,請(qǐng)回顧一下[[Gallery:Language_Settings|語言設(shè)定]]的優(yōu)先級(jí)(會(huì)話語言(Session language) > 用戶偏好(user preferences) > 站點(diǎn)范圍的默認(rèn)語言(site wide default language))。如果有疑慮的話,可以使用語言區(qū)塊或在用戶偏好中反復(fù)嘗試。


== 本地化的提交 ==
== 本地化的提交 ==

2008年10月25日 (六) 16:57的最新版本

Gallery2的本地化[ ]

綜述[ ]

Gallery是國際化的。不對(duì)特定語言文本消息的包含, 取而代之地,它使用特殊的方法追蹤文本 以進(jìn)行抽取并翻譯成其他語言。用戶則會(huì)看見 文本被翻譯成他們使用的語言版本。

為了能夠讓用戶看到Gallery文本的本地化版本, 就需要先將這些Gallery要顯示的文本消息進(jìn)行 翻譯。此過程就被稱為"本地化"。

這里我們嘗試說明一下如何創(chuàng)建并維護(hù)G2中本地化 文件的內(nèi)容。這并不是特別困難的任務(wù), 但要求無論何時(shí)基礎(chǔ)內(nèi)容有改變,我們都要保證 各類文件的更新度。我們挺幸運(yùn)的,因?yàn)橛羞@樣的工具能 協(xié)助我們完成此類操作過程。

要求[ ]

為了能夠有效率地進(jìn)行,你需要在計(jì)算機(jī)上 安裝一些工具。我僅在FreeBSD box中做了測試,但我想如果用在Linux,Solaris或其他Unix類系統(tǒng) 上也不會(huì)太麻煩。在Windows上可能會(huì)有些難度, 但也是有可能實(shí)現(xiàn)的。 以下為必須安裝,并在你的路徑中:

gettext
http://www.gnu.org/software/gettext/
gmake (或make)
http://www.gnu.org/software/make/make.html
php二進(jìn)制
http://php.net
perl
http://perl.com

:如果你使用FreeBSD,并希望能取代make而使用gmake,因?yàn)镕reeBSD的默認(rèn)不與GNU兼容。

你還需要用當(dāng)前G2文件創(chuàng)建最新的翻譯。就目前的SVN或nightly快照版的運(yùn)行情況都不錯(cuò)。最新的G2開發(fā)者版本也能運(yùn)行,但某些翻譯的字串可能有些過時(shí)了。

本地化的新建[ ]

瀏覽一下Gallery就能發(fā)現(xiàn)不少名為"po"的目錄。("po"是一gettext術(shù)語,即"可移植對(duì)象(portable object)")。以下為找到它們的一個(gè)方法:

find . -type d -name po			<-- 輸入這個(gè)

./themes/matrix/po	          	<-- 會(huì)看到這個(gè)
./lib/tools/po
./modules/core/po
./modules/comment/po
./modules/netpbm/po

** 忽略"lib/tools/po"目錄。

這些目錄還有翻譯源文件。你要 使用合適的語言代碼來新建文件,接著在它們之中 添入經(jīng)過翻譯的文本。首先要做的就是從 下面的兩個(gè)表格中識(shí)別出正確的代碼:

語言代碼
http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC221
(or http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt)
國家代碼
http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC222
(or http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html)

在大多數(shù)情況下,你只需要語言代碼即可,如德語就是"de"。要為多個(gè)國家中提供特定國家語言的翻譯,你可以使用這樣的代碼格式,xx_XX,例如"pt_BR"表示葡萄牙語/巴西。如果你確定該用哪一個(gè),包括語言和國家。如果你發(fā)現(xiàn)已有你使用語言的翻譯的話,請(qǐng)接著看 本地化的維護(hù)

一旦選好了代碼,就需要為你的代碼新建一個(gè).po 文件。假定你選擇是的"de"。那么對(duì)各po目錄, 你需要做的是:

make de.po

這將找到該本地化標(biāo)記的所有文本(tpl文件中的{g->text},php代碼中的translate()或i18n()),并創(chuàng)建一個(gè)即將進(jìn)行翻譯的po文件。

有關(guān)文本編輯器。

我比較喜歡用XEmacs,因此我會(huì) 在下面的例子中拿XEmacs做例子。如果你有其他編輯器 的使用指導(dǎo),請(qǐng)分享一下。XEmacs的主要模式被稱為"po-模式",如果你安裝了它,在編輯.po文件時(shí)就會(huì) 自動(dòng)轉(zhuǎn)入。我在這里不準(zhǔn)備這么做,但 你可以嘗試一下。

現(xiàn)在我們來編輯de.po。在其頂部應(yīng)有Gallery的證書。你需要對(duì)以下值做自定義:

Last-Translator
將你的名字及email以此格式輸入:"FirstName LastName <email@address>"
Language-Team
輸入語言及-翻譯郵件列表,如"German <gallery-translations@lists.sourceforge.net>"
Content-Type
將此設(shè)置給"Content-Type:text/plain; charset=UTF-8\n"
我們希望你使用UTF-8字符集。因?yàn)樗试S我們?cè)谕豁撁嫔蠈?duì)多個(gè)語言進(jìn)行渲染,這對(duì)某一語言站點(diǎn)頁面上其他語言的用戶評(píng)論是有好處的。

這里有modules/core/po/de.po的完整的header樣例。注意編寫者是如何維護(hù)前任翻譯者名單的。

# 前任翻譯者(迄今所知,如有脫漏,請(qǐng)?jiān)诖颂砑樱?# - Jens Tkotz <jens@peino.de>
# - Ernesto Baschny <ernst@baschny.de>
...
#
msgid ""
msgstr ""
"Project-Id-Version: Gallery: Core 1.0.32\n"
"POT-Creation-Date: 2003-02-11 03:09-0800\n"
"PO-Revision-Date: 2006-03-05 02:25+0000\n"
"Last-Translator: Frederik Kunz <frederik.kunz@web.de>\n"
"Language-Team: German <gallery-devel@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

如果你的語言中不包含復(fù)數(shù)詞用法,如漢語或土耳其語,就得修改以下語句:

"Plural-Forms: nplurals=2; plural=(n != 1);\n"
    -> Change to "Plural-Forms: nplurals=1; plural=0;\n".

這樣,你只需翻譯msgstr[0]并注釋掉或移除msgstr [1].

接著來看看Gallery證書下的語句行:

#, fuzzy
msgid ""
msgstr ""

模糊的關(guān)鍵詞告知你區(qū)塊的翻譯 不完整。但一旦更新了administration entry,就 可以移除"#, fuzzy"這一行以允許稍后翻譯的 編譯。

接下來你會(huì)看到一系列區(qū)塊:

#, c-format		(<-- 在某些語句行中僅能看到這個(gè))
msgid "a message in english, with %d or %s tags in it"
msgstr ""

你需要將英語消息的翻譯置入 msgstr區(qū)塊中,用引號(hào)括起來,例如:

#, c-format
msgid "a message in english, with %d or %s tags in it"
msgstr "eine Anzeige auf englisch, mit %d oder %s etikettiert in ihr"

某些msgid值含有有助于進(jìn)行翻譯的提示信息:

#. HINT: Button label for Bold
msgid "B"
msgstr "F"

注意提示內(nèi)容不應(yīng)翻譯或包括在msgstr文本中。你可以使用翻譯追蹤器(Translations Tracker)為特殊字串請(qǐng)求額外的提示文本。指定模塊/外觀主題以及msgid。注意strings.raw文件列出了用到msgid的文件。

在編輯這些消息之前,你確實(shí)應(yīng)當(dāng)將編輯器設(shè)為UTF-8模式, 這樣編輯器才能使用正確的字符集。 如果你由于某種原因無法在UTF-8模式中進(jìn)行編輯, 請(qǐng)考慮使用GNU的"recode"程序,在提交翻譯內(nèi)容給我們之前, 將其轉(zhuǎn)為UTF-8(或者直接發(fā)給我們也許,我們會(huì)進(jìn)行重新編碼)。

如果你使用XEmacs的MULE(即多語言支持(MULtilanguagE)),你可以將一下內(nèi)容添加到 ~/.xemacs/init.el中去

; Enable Unicode support (via Mule-UCS)
;
(require 'un-define)
(set-coding-priority-list '(utf-8))
(set-coding-category-system 'utf-8 'utf-8)

當(dāng)你編輯UTF-8的文件時(shí),會(huì)有一些"u" 出現(xiàn)在屏幕底部狀態(tài)條左側(cè)。使用現(xiàn)有的 .po文件來看一看。

在進(jìn)行一些翻譯之后,來看看效果。運(yùn)行:

make install PO=de

它會(huì)將你的.po文件編譯到一個(gè).mo文件中,并將其安裝到合適的位置。在修改.po文件之后,對(duì)各目錄都要重復(fù)此步驟。如果你在創(chuàng)建locale目錄時(shí)發(fā)生錯(cuò)誤,請(qǐng)?jiān)谶\(yùn)行make之前建立目錄結(jié)構(gòu)(如:modules/mymodule/locale/de/LC_MESSAGES)。

最后,你需要編輯modules/core/classes/GalleryTranslator.class,并在函數(shù)getLanguageData中加入如下語句:

/* German */
$this->_supportedLanguages['de']['DE']['description'] = 'Deutsch';
$defaultCountry['de'] = 'DE';

批注應(yīng)為該語言的英語說法;語言 '描述'則應(yīng)是該語言的本土說法。

現(xiàn)在登入G2,在用戶偏好(你可能需要 通過站點(diǎn)管理對(duì)用戶進(jìn)行編輯)中,你應(yīng)能在下拉列表中看到 German。而如果你選擇了它,并以剛才那個(gè)用戶的身份登入的話, 就能看到消息被翻譯為該語言了。你還可以將語言選擇器區(qū)塊 添加到站點(diǎn)中,使用外觀主題設(shè)定就可以做到。

注: 如果語言修改沒有起效,請(qǐng)回顧一下語言設(shè)定的優(yōu)先級(jí)(會(huì)話語言(Session language) > 用戶偏好(user preferences) > 站點(diǎn)范圍的默認(rèn)語言(site wide default language))。如果有疑慮的話,可以使用語言區(qū)塊或在用戶偏好中反復(fù)嘗試。

本地化的提交[ ]

現(xiàn)在本地化就應(yīng)創(chuàng)建號(hào)了,你需要將其 打包并發(fā)送給我們,這樣我們就能將其添入存儲(chǔ)庫。 最好的打包方式如下:

cd gallery2
zip de.zip `find . -name de.po`

or:

cd gallery2
tar czf nl.tar.gz `find . -name nl.po`

你翻譯過的文件會(huì)被做成zipfile或tarball。當(dāng)然使用你自己的語言代碼取代上面的de或nl。接著瀏覽SourceForge 的Gallery項(xiàng)目頁面上的幫助部分)告知我們。

本地化的維護(hù)[ ]

cd po
make de.po	(using German as an example)

這會(huì)從你所在的模塊中提取出所有消息 并更新.po文件。瀏覽.po文件,找到所有具有 空msgstr或被標(biāo)記為"模糊(fuzzy)"的區(qū)塊并更新它們。在它們 被修復(fù)之后,移除fuzzy標(biāo)識(shí)。你看到的標(biāo)識(shí)會(huì)是如下的 樣子:

#, fuzzy
#~ msgid "User"
#~ msgstr "Gebruikersnaam"

"#, fuzzy"表示它是模糊的,但"#~"表明該 字串不存在于G2中(我們可能將其刪除或修改了 )。你可以刪除這些內(nèi)容.

你應(yīng)當(dāng)快速地做一次gettext提供的檢查,以驗(yàn)證.po文件:

msgfmt -v -c --stat de.po

當(dāng)一切都設(shè)置好后,運(yùn)行:

make install PO=de

翻譯文件被PHP緩存(這就是其快速的原因) 因此在重啟web服務(wù)器之前,可能無法看到所作的修改。這是 有點(diǎn)麻煩,但我還沒有想出好的解決辦法。

參見[[#本地化的新建]|本地化的新建]]部分的測試信息,并向我們提交新文件。

何處尋求幫助?[ ]

如果你需要幫助,有三個(gè)地方可以求助:

The Gallery translations forums
http://gallery.menalto.com/forum/74
The gallery-translations mailing list
http://codex.gallery2.org/index.php/Mailing_Lists
The Gallery IRC channel
#gallery on irc://chat.freenode.net

翻譯列表[ ]

所有可用的Gallery2翻譯,都在此以字母表順序列出了,帶有維護(hù)者/作者名單。某些翻譯100%保持更新并且完成,某些則僅完成了2%或過期了。參見 本地化報(bào)告。如果你有G2的開發(fā)者整合包,就可以運(yùn)行http://www.example.com/gallery/lib/tools/reports/localization.php來查看所有已安裝翻譯的狀態(tài)。