3

PrimeFaces Editor(バージョン3.2)に国際化を追加する方法がわかりません。ツールチップ、コンボボックス内のテキストを翻訳し、ツールバーのアイコンを変更する必要があります。古いユーザーガイドhttp://www.scribd.com/doc/49595285/46/Editorで「言語」という属性を見つけましたが、実際のバージョンでは無効になっているか、削除されているようです。

私のプロジェクトのセットアップは、PrimeFaces3.2とGlassFish3.1.2を備えたJSF2です。

この問題を解決する方法を教えていただければ幸いです。

よろしくお願いいたします。

ペドロ

4

4 に答える 4

3

JMelnikは正しいです。ただし、回避策があります。

これを行うには、primefaces サブバージョン リポジトリ ( 3_3_1/src/main/resources/META-INF/resources/primefaces/editor/editor.js)から editor.js ファイルをダウンロードし、プロジェクトのMETA-INF/resources/primefaces/editorフォルダー内に配置します。

これで、ファイルを編集して、ロケールに応じて変更できます。私はpt_BRのいくつかのボタンのためにそれをしました:

buttons: {
  // name,title,command,popupName (""=use name)
  init:
  "bold,Negrito,|" +
  "italic,Itálico,|" +
  "underline,Sublinhado,|" +
  "strikethrough,Tachado,|" +
  "subscript,Subscrito,|" +
  "superscript,Sobrescrito,|" +
  "font,Fonte,fontname,|" +
  "size,Tamanho da Fonte,fontsize,|" +
  "style,Estilo,formatblock,|" +
  "color,Cor da fonte,forecolor,|" +
  "highlight,Cor de Destaque do Texto,hilitecolor,color|" +
  "removeformat,Remove Formatting,|" +
  "bullets,Marcadores,insertunorderedlist|" +
  "numbering,Numeração,insertorderedlist|" +
  "outdent,Diminuir Recuo,|" +
  "indent,Aumentar Recuo,|" +
  "alignleft,Alinhar à Esquerda,justifyleft|" +
  "center,Centralizar,justifycenter|" +
  "alignright,Alinhar à Direita,justifyright|" +
  "justify,Justificar,justifyfull|" +
  "undo,,|" +
  "redo,,|" +
  "rule,Insert Horizontal Rule,inserthorizontalrule|" +
  "image,Insert Image,insertimage,url|" +
  "link,Insert Hyperlink,createlink,url|" +
  "unlink,Remove Hyperlink,|" +
  "cut,,|" +
  "copy,,|" +
  "paste,,|" +
  "pastetext,Paste as Text,inserthtml,|" +
  "print,,|" +
  "source,Mostrar Código Fonte"
},

このアプローチは複数のロケールをサポートせず、コードを特定のエンコーディングに依存させるため (特殊文字を使用する可能性があるため)、そのための i18n ソリューションは素晴らしいでしょう。

于 2012-08-29T22:27:46.760 に答える
2

JSF2 と Primefaces には jQuery があるため、ページで次のコードを実行するだけです。

$(function(){
    $(".ui-editor-group>.ui-editor-button").each(function(){
        var title = $(this).attr("title").toLowerCase();
        switch(title){
            case "bold":              title = "Negrito"; break;
            case "italic":            title = "Itálico"; break;
            case "underline":         title = "Sublinhado"; break;
            case "align text left":   title = "Alinhado à esquerda"; break;
            case "center":            title = "Centralizado"; break;
            case "align text right":  title = "Alinhado à direita"; break;
            case "justify":           title = "Justificado"; break;
            case "insert hyperlink":  title = "Inserir link"; break;
            case "remove hyperlink":  title = "Remover link"; break;
        }
        $(this).attr("title", title);
    })
})

この小さな jQuery コードで、Primefaces Editor の文字列を好きな場所に変更できます。すべてを使用したわけではないので、一部のエディター コンポーネント用にのみ作成しました。

他のオプションを変換する必要がある場合は、switch コマンド内に追加するだけです。3 行目の ".toLowerCase()" メソッドにより、switch コマンド内のすべてのタイトルが小文字であることを忘れないでください。文字列の管理を簡素化するためにこれを行いました。

外部 JavaScript ファイル内の関数内に配置して、キャッシュすることもできます。

于 2013-03-26T14:43:24.423 に答える
2

分析

PrimeFaces 3.2のドキュメントを見ると、エディタ コンポーネントの言語などの属性はなく、ローカリゼーションの章には何も言及されていません。

PrimeFaces は、 Calendarに提供するように Editor をローカライズする方法を提供しません。そして明らかに、caledar が基づいている jQuery datePicker のアウトオブボックス機能であるため、カレンダー用に提供しています。

結果

PrimeFaces 3.2 ソースでeditor.jsを探します。すべてのエディター ボタンが初期化されるセクションがあります。

buttons: {
   // name,title,command,popupName (""=use name)
   init:
   .....
   "font,,fontname,|" +
   "size,Font Size,fontsize,|" +
   .....
}

ボタンを個別に設定するための形式が用意されています: name,title,command,popupName. そのtitle部分はあなたが利用できるものです。

あなたができることは、提供された独自のタイトルでprimefacesソースを構築するか、私が考えられない他の方法でそれらをオーバーライドすることができます.

ヘルプ

Maven を使用している場合は、カスタマイズされたプライムフェイスを独自のローカルまたは集中リポジトリにインストールして、元の依存関係の代わりに使用できます。

レッスン

新しいバージョンを使用している場合は、古いドキュメントを探すべきではありません。使用しているバージョンのドキュメントを探してください。

于 2012-05-24T12:22:40.890 に答える
1

これは、ギリシャ語 (el_GR ロケール) 用に作成したすべてのボタンの実際の例です。

$(".ui-editor-group>.ui-editor-button").each(function () {
                                var title = $(this).attr("title").toLowerCase();
                                switch (title) {
                                    case "bold":
                                        title = "Έντονα";
                                        break;
                                    case "italic":
                                        title = "Πλάγια";
                                        break;
                                    case "underline":
                                        title = "Υπογραμμισμένα";
                                        break;
                                    case "align text left":
                                        title = "Στοίχιση αριστερά";
                                        break;
                                    case "center":
                                        title = "Στοίχιση στο κέντρο";
                                        break;
                                    case "align text right":
                                        title = "Στοίχiση δεξιά";
                                        break;
                                    case "justify":
                                        title = "Στοίχιση";
                                        break;
                                    case "insert hyperlink":
                                        title = "Εισαγωγή συνδέσμου";
                                        break;
                                    case "remove hyperlink":
                                        title = "Αφαίρεση συνδέσμου";
                                        break;
                                    case "strikethrough":
                                        title = "Διεγραμμένα";
                                        break;
                                    case "subscript":
                                        title = "Δείκτης";
                                        break;
                                    case "superscript":
                                        title = "Εκθέτης";
                                        break;
                                    case "font":
                                        title = "Γραμματοσειρά";
                                        break;
                                    case "font size":
                                        title = "Μέγεθος γραμματοσειράς";
                                        break;
                                    case "style":
                                        title = "Στυλ";
                                        break;
                                    case "font color":
                                        title = "Χρώμα γραμματοσειράς";
                                        break;
                                    case "text highlight color":
                                        title = "Χρώμα επισήμανσης κειμένου";
                                        break;
                                    case "remove formatting":
                                        title = "Κατάργηση μορφοποίησης";
                                        break;
                                    case "bullets":
                                        title = "Λίστα με κουκκίδες";
                                        break;
                                    case "numbering":
                                        title = "Αριθμητική λίστα";
                                        break;
                                    case "outdent":
                                        title = "Προεξοχή";
                                        break;
                                    case "indent":
                                        title = "Εσοχή";
                                        break;
                                    case "undo":
                                        title = "Αναίρέση";
                                    case "redo":
                                        title = "Επαναφορά";
                                        break;
                                    case "insert horizontal rule":
                                        title = "Eισαγωγή οριζόντιας γραμμής";
                                        break;
                                    case "insert image":
                                        title = "Εισαγωγή εικόνας";
                                        break;
                                    case "cut":
                                        title = "Κόψιμο";
                                        break;
                                    case "copy":
                                        title = "Αντιγραφή";
                                        break;
                                    case "paste":
                                        title = "Επικόλληση";
                                        break;
                                    case "paste as text":
                                        title = "Επικόλληση ως απλό κείμενο";
                                        break;
                                    case "print":
                                        title = "Εκτύπωση";
                                        break;
                                    case "show source":
                                        title = "Εμφάνιση κώδικα";
                                        break;
                                    case "Show Rich Text":
                                        title = "Εμφάνιση εύκολης επεξεργασίας άρθρου";
                                        break;
                                }
                                $(this).attr("title", title);
                            });
于 2015-02-22T14:04:12.827 に答える