翻訳プラグイン
この拡張は二年以上更新されていません。もはや維持管理や対応がされておらず、互換性に問題がある可能性があります。
この拡張機能は 'plugin' または 'template' 名前空間にないため、無視されます。
類似 autotranslation, multilingual, nsrelation, translate, translation2, translation3, uilanguage, versionswitch
必要とされるプラグイン datagraph, deeplautotranslate, localization, whennotfound
このプラグインは、ページに使用可能な翻訳済み一覧を表示します。 とても簡単で、 www.dokuwiki.org のニーズを念頭に置いて構築され、ここで文章の翻訳作業のために使用されています。 制約事項があります:
- 翻訳文章を格納するために、独立した名前空間を使用します。
- 翻訳済みページは、主要言語のページと同じページ名でなければなりません。
ダウンロード
手動またはプラグイン管理でファイルをダウンロードするために上記のダウンロードリンクを使用してください。
変更履歴
- Version upped (2024-05-01 23:50)
- Merge pull request #308 from Zweihorn/patch-1 (2024-05-01 17:43)
- Update plugin.info.txt (2024-04-30 21:53)
- Merge pull request #305 from dokuwiki-translate/lang_update_792_17058… (2024-01-22 09:00)
- translation update (2024-01-22 03:40)
- Version upped (2023-12-14 23:50)
- code style fixes, removed deprecated method (2023-12-14 10:08)
- Merge pull request #294 from crazycatdevs/master (2023-12-14 09:44)
インストール
- プラグイン管理でプラグインをダウンロード・インストールして下さい。
- Configure it through the 設定管理で設定して下さい。
- テンプレートの
lib/tpl/<yourTemplate>/
ディレクトリ内のmain.php
ファイルに以下のコードを追加して下さい。(旧デフォルトテンプレートの場合、lib/tpl/default/pageheader.html
ファイルに追加して下さい。)
<?php $translation = plugin_load('helper','translation'); if ($translation) echo $translation->showTranslations(); ?>
案1: テーマの中で視覚要素が最高になる main.php
の場所にこのコードを追加して下さい。
最高の場所を探すために、多少試してみる必要があります。
複数のテーマやスキンをインストールしている場合、全スキンで翻訳プラグインを可能にするためにそれぞれの main.php
にこのコードを追加する必要があります。
案2: “dokuwiki” テンプレートの場合、lib/tpl/dokuwiki
内に上記コード入りの sidebarheader.html
ファイルを作成できます。
“DokuWiki.org” のホームページのような外観になり、DokuWiki を更新後にこの作業をやり直す必要がなくなります。
設定
最初に、多言語 wikiを設定する方法は二種類あります:
- ルート名前空間にデフォルト言語、サブ名前空間に翻訳言語
- ルート名前空間にはページがなく、サブ名前空間に全ての言語
dokuwiki.org では最初の方法を採用し、一方で特定の機能は二番目の方法でしか機能しません。
いくつかの設定オプションがありますが、すべて設定管理からアクセスできます。
最初に行う重要な設定は、translations
設定で使用する言語を設定する事です。
それには、ISO 言語コードの使用するのが効率が良い方法です。
複数の場合、例えば英語とドイツ語ならば、半角スペースで区切り、en de
となります。
翻訳用名前空間はここでオプションに設定した通りの名前になります。
設定の種類に応じて、デフォルト言語(設定項目: lang に設定した内容)を追加するか省略すべきです。
- ルート名前空間のデフォルト言語の場合、設定からは省略する。
- 全ての言語に対する名前空間の場合、他の言語同様に追加する。
デフォルトでは、翻訳リンク一覧が表示されます。
翻訳言語が多い場合、この一覧はかなりの領域を使用します。
この場合、dropdown
オプションを有効にすることは役に立ちます。
特定の名前空間に翻訳を制限したい場合、translationns
オプションで定義できます。
これは任意項目で、空にした場合は wiki 全体でプラグインが有効になります。
上記設定と同様に、skiptrans
設定を利用して特定のページや名前空間で翻訳を無効化できます。
これはページ名と照合する正規表現を要求します。
一致した場合、言語選択を表示しません。
正規表現はコロンで始まる完全なページ名に適用されます。
デフォルト以外の言語ページが選択されている場合、プラグインが DokuWiki のユーザーインターフェイス全体も翻訳する選択も必要に応じてできます。
translateui
オプションを有効にするだけです。
タイプ2設定にした場合、ルート名前空間はかなり無駄です。
redirectstart
設定を有効にすると、ブラウザの言語に基づいて翻訳名前空間の開始ページにユーザーをリダイレクトします。
上記 translateui
も有効な場合のみ、このオプションは動作します。
他の言語に翻訳済みのデフォルト言語を持っている場合、訪問者への古くなった翻訳の警告は便利かもしれません。
checkage
オプションを有効にすると、翻訳ページの年齢と元(デフォルト言語)ページの年齢とを比較して警告します。
更に、翻訳前に編集された元ページの最新リビジョンを探し、差分表示にリンクします。
最後に、ユーザーに対して wiki 上で翻訳がどのように動作しているかを説明したいでしょう。
言語選択からこの説明に簡単にアクセスできるようにするには、説明ページのページ名を設定項目 about
に入力して下さい。
localabout
設定を有効にすると、他のページ同様この説明ページを翻訳することができ、リンクは常に現在有効な翻訳ページを指します。
さらに、言語選択の外観に影響を与えるオプションが選択できます。
以下の設定から選択可能な display
オプションを使用します:
設定値 | 説明 |
---|---|
langcode | ISO 言語コード(例 de ) |
name | 言語の本当の(翻訳後の)名前(例 Deutsch ) |
title | 「このページの翻訳」という序文表示 |
twolines | 有効にすると title の後に改行を追加 |
flag | 言語と一致した国旗を表示(詳細は下記参照) |
手動設定
設定管理を使用せず、設定ファイルを編集し wiki の設定をしたい場合、自分の local.php
設定ファイルに追加されるべき有益な行は以下のとおりです:
$conf['plugin']['translation']['translations'] = 'en,fr,de,it'; // 利用可能な言語 $conf['plugin']['translation']['dropdown'] = 1; // ドロップダウン一覧を使用する $conf['plugin']['translation']['translationns'] = 'wiki'; // 翻訳を有効化する名前空間 $conf['plugin']['translation']['skiptrans'] = '^:(plugin|template):'; // 翻訳しない(正規表現) $conf['plugin']['translation']['translateui'] = 1; // ユーザーインターフェイスも、名前空間の言語に切り替えるか? $conf['plugin']['translation']['checkage'] = 1; // 古い翻訳の警告を表示する。 $conf['plugin']['translation']['about'] = 'translation:about'; // 翻訳機能をユーザーに説明するページ名 $conf['plugin']['translation']['localabout'] = 1; $conf['plugin']['translation']['display'] = 'langcode,name';
使用方法
プラグインはテンプレートから呼び出され自動的に動作します(インストールを参照)。 ページに次のコードを追加すれば、特定のページでその動作を無効化できます:
~~NOTRANS~~
国旗の使用について
言語を表現するために国旗を使用することは非常に悪い考えで、どんな犠牲を払っても回避する必要があるというのがユーザビリティ専門家の一致した見解です。 言語が単一の国に対応していないのが理由です。
簡単な例:どの国旗が英語を表現していますか? イングランド国旗(白地に赤十字)?英国旗(ユニオンジャック)?米国旗(星条旗)? スイス国旗を見てどの言語を期待しますか? フランス語?ドイツ語?レト・ロマン語?
需要が高いので国旗対応を追加しましたが、使用しないことを強くお勧めします。 使用した場合、どの組み合わせを選択しても、あなたの国旗選択によってユーザーの誰かが不快になるということを忘れないでください。
全てのブラウザで dropdown
オプションを利用する場合、国旗対応は必ず動作するわけではないのでご注意下さい。
新しい国旗はプラグインの flags
ディレクトリに置くことができ、ISO コードの名前付ける必要があります。
現在は .gif しか対応していません。
名前空間テンプレートの変数
翻訳プラグインは、名前空間テンプレートで使用可能な変数を追加します。
変数 | 説明 | 例 |
---|---|---|
@LANG@ | 設定項目: lang に入力した言語 | en |
@TRANS@ | 現在使用中の言語。デフォルト言語のサブ名前空間がない場合、この変数は空になります。 | en:start → en, start → <空> |
ACL に基づく古い翻訳警告
私は公開ウェブサイトで翻訳プラグインを使用しており、登録ユーザーだけに古い翻訳を表示する手段を希望しています。 公開プラグインを使用するように、元ページに草稿がある場合は翻訳ページには「古い翻訳」警告を表示します。
汚いハックを使用し稼働していますが、将来的には適切で保守可能な実装をとても歓迎します。
言語選択の読み込み
テンプレートを変更することなく言語選択が読み込むことができれば素晴らしいです。 (次の更新で失うこともないですし、最後に追加した場所を覚えておく努力も要りません。) デフォルトテンプレートにそのためのフックがあるかどうか知りませんが、間違いなく役立つだろう。