|
Internationalizations
O PmWiki suporta a internacionalização de páginas web, permitindo que caracteres acentuados apareçma em nomes de página e a quese completa customização dos prompts e mensagens do pmwiki. Grande parte da customização é fornecida pela função XLPage() no PmWiki, que carrega um conjunto de variáveis de tradução de uma página wiki (tipicamente nomeada XLPage, mas pode ter qualquer nome que você desejar). O resto desa página é devotada à instalação, configuração e uso de outros idiomas. Se você está procurando por ferramentas e ajuda para localização do PmWiki na sua lingua, ou como você pode melhorar traduções existentes, comece em pmwiki.org com a página Localization - O portal de tradução. PmWikiZhCn Chinese simplified ~ XLPage
PmWikiZhTw Chinese (Traditional) ~ XLPage
Carregando páginas de traduçãoMuitas páginas em Outras Linguas já foram criadas e mantidas no site pmwiki.org. Você pode baixar um arquivo com essas traduções do endereço http://www.pmwiki.org/pub/pmwiki/i18n/ . Simplismente faça o download dos arquivos de linguagens aprorpiados, e desempacote-os no diretório contendo o arquivo pmwiki.php da sua instalação. Cada arquivo contém um número de arquivos de página que serão colocados dentro do diretório wikilib.d/, e alguns scripts especiais para a tradução que usam um a character set outro que não o iso-8859-1 (padrão do PmWiki). Você também pode usar o charset |UTF-8|. Uma vez que as páginas de tradução estejam instaladas, você habilita uma linguagem adicionando uma chamada para o XLPage() no seu arquivo config.php. Por exemplo, para selecionar prompts em francês, você deve especificar XLPage('fr','PmWikiFr.XLPage');
Que diz para carregar as traduções para o francês ('fr') da página PmWikiFr.XLPage. É perfeitamente normal carregar multiplas páginas; assim, se você quer criar suas próprias traduções sem mudar as que você tem no arquivo i18n, simplesmente crie uma nova página (veja abaixo) e carregue-a no topo. certifique-se de carregar primeiro a página com as suas mudanças locais: XLPage('fr','PmWikiFr.XLPageLocal'); # minhas traduções locais XLPage('fr','PmWikiFr.XLPage'); # do pacote i18n.tgz Se a sua intenção é oferecer múltiplas linguagens no seu site, e usar Grupo como seletores de linguagem, você talvez queira colocar este código no seu arquivo de customizações por grupo (veja |GroupCustomizations|). Por exemplo, se o seu site está publicado em Francês e Inglês, e as páginas em francês estão no grupo chamado Fr, você poderia criar um arquivo nomeado como Fr.php no seu diretório local/ , contendo: <?php if (!defined('PmWiki')) exit(); ## mude para o francês XLPage('fr','PmWikiFr.XLPage'); You may wish to create a page called PmwikiFr.php with the same content to access the French documentation in the PmwikiFr group. En.php is not necessary in this case since English is the default language. An alternative to the above would be to add to config.php the following, which tests if there is an XLPage in a group, and if it finds one it gets loaded: $xlpage = FmtPageName('$Group.XLPage', $pagename); if (PageExists($xlpage)) XLPage($xlpage, $xlpage); With this method you would need to copy any relevant XLPage into any group which needs the different language support. See also Cookbook:MultiLanguage Creating New TranslationsIf language pages don't exist for your desired language, it's easy to create one! An XLPage translation file simply contains lines of the form 'phrase' => 'translated phrase',
where "phrase" is an internationalized phrase (denoted by 'Search' => 'Rechercher',
converts " If you create new versions of PmWiki pages in other languages, please consider adding them to the main PmWiki site so that they can be made available to others in the i18n archives! (Be sure to check out |The Localization Portal| for further information on effectively internationalizing PmWiki.) The term "i18n" is commonly used as an abbreviation for the English word "internationalization". The abbreviation is derived from the fact that there are 18 letters between the "i" and the final "n" and few people want to type them all out.
Enabling "Special" Characters in WikiLinksTo enable "special" characters like for example German umlauts in WikiLinks, it is necessary to configure the server locale to ensure that PmWiki uses the proper character set definition. If this is not possible due to limited access to the server configuration, PmWiki can be configured to use a specific locale by using the XLPage options (see XLPageTemplate). For German umlauts, you'd need for example:
Note that the locale identifier depends on the operation system and perhaps on the specific installation. NotesIf my wiki is internationalized by config.php, how do I revert a specific group to English? Use If my wiki is in English and I want just one page, or group, in Spanish do I say Yes, that is usually the best method. If you were doing this with many scattered pages, or with several languages, you might find it easier to maintain if you load the translations all in config.php like this: XLPage('es','PmWikiEs.XLPage');
XLPage('fr','PmWikiFr.XLPage');
XLPage('ru','PmWikiRu.XLPage');
Then in each group or page configuration file, you'd just use What does the first parameter of this function stand for? How can it be used? The XLPage mechanism allows multiple sets of translations to be loaded, and the first parameter is used to distinguish them. For example, suppose I want to have translations for both normal French and "Canadian" French. Rather than maintain two entirely separate sets of pages, I could do: XLPage('fr', 'PmWikiFr.XLPage'); XLPage('fr-ca', 'PmWikiFrCa.XLPage'); PmWikiFr.XLPage would contain all of the standard French translations, while PmWikiFrCA.XLPage would only need to contain "Canada-specific" translations -- i.e., those that are different from the ones in the French page. The first parameter distinguishes the two sets of translations.
In addition, a config.php script can use the and PmWiki will use only the 'fr' and 'en' translations (in that order), no matter how many translations have been loaded with XLPage(). How can I use PHP to add a translation for an individual string on the fly? Use the XLSDV() function to provide a translation for a specific (English) string. For instance, with this in config.php XLSDV('nl', array('my English expression'=>'mijn Nederlandse uitdrukking')); any instance of the variable expression But beware: XLPage() uses XLSDV() internally for its translation pairs, too, and only the first definition is accepted! Thus, if the Dutch XLPage already contains a translation for your string like 'my English expression' => 'bla bla', and you want to override that, you need to use your XLSDV('nl',...) before calling the correspondent XLPage('nl',...). Otherwise, by using XLSDV() after XLPage() - e.g. within a recipe that is included later in config.php - your translation will only work as long nobody defines 'my English expression' in that XLPage.
Essa é possivelmente a tradução do original em : PmWiki.Internationalizations - Backlinks |