Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何使用I18N PrimeFaces编辑器_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 如何使用I18N PrimeFaces编辑器

Jsf 2 如何使用I18N PrimeFaces编辑器,jsf-2,primefaces,Jsf 2,Primefaces,我无法确定如何将国际化添加到PrimeFaces编辑器(3.2版)。 我需要翻译工具提示、组合框中的文本以及更改工具栏的图标。 在一本旧的用户指南中,我发现了一个名为“language”的属性,但对于实际版本,它似乎被禁用或删除了 我的项目设置是JSF2,PrimeFaces3.2和GlassFish 3.1.2 如果你能告诉我如何解决这个问题,我将非常高兴 谢谢和亲切的问候 佩德罗分析 如果我们看一下,编辑器组件没有语言这样的属性,本地化一章也没有提到 PrimeFaces并不像它们那样提供本

我无法确定如何将国际化添加到PrimeFaces编辑器(3.2版)。 我需要翻译工具提示、组合框中的文本以及更改工具栏的图标。 在一本旧的用户指南中,我发现了一个名为“language”的属性,但对于实际版本,它似乎被禁用或删除了

我的项目设置是JSF2,PrimeFaces3.2和GlassFish 3.1.2

如果你能告诉我如何解决这个问题,我将非常高兴

谢谢和亲切的问候

佩德罗

分析 如果我们看一下,编辑器组件没有语言这样的属性,本地化一章也没有提到

PrimeFaces并不像它们那样提供本地化编辑器的方法。显然,他们确实为calendar提供了它,因为它是calendar所基于的jQuery datePicker的现成特性

结果 从中寻找答案。有一个部分,其中初始化了所有编辑器按钮:

buttons: {
   // name,title,command,popupName (""=use name)
   init:
   .....
   "font,,fontname,|" +
   "size,Font Size,fontsize,|" +
   .....
}
为单独的按钮设置提供了格式:
名称、标题、命令、popupName
标题
部分就是您可以使用的部分

你可以做什么,你可以用你自己提供的标题构建primefaces源代码,或者用我想不到的其他方式覆盖它们

帮助 如果您使用的是maven,那么您可以在自己的本地或集中存储库中安装定制的primefaces,并使用它来代替原始依赖项

课程
在使用较新版本时,不应查找旧文档。查找您正在使用的版本的文档。

JMelnik是正确的。不过有一个解决办法

您可以从primefaces subversion存储库下载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解决方案将非常好,因为这种方法不支持多个地区,并且使您的代码依赖于特定的编码(因为它可能使用特殊字符)

由于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编辑器的字符串更改为您想要的任何位置。我只为几个编辑器组件制作了它,因为我没有全部使用它们

如果需要转换其他选项,只需将它们添加到switch命令中即可。不要忘记switch命令中的所有标题都是小写的,因为第三行有“.toLowerCase()”方法。我这样做是为了简化字符串管理


您也可以将其放入外部JavaScript文件中的函数中,以将其缓存。

这是我为希腊语(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);
                            });

您好,JMelnik-感谢您的回复,当然我的第一步是查看PrimeFaces 3.2的文档。我问自己为什么它消失了,是否有一种新的方法/替代方法来安装I18N,但我还没有认识到。我认为他们在本地化方面的做法根本不起作用。关于以前的文档,他们提到要给他们发送其他语言的翻译,但我想他们最终明白了这不是用户友好和不专业的。我希望他们能为其组件的I18N提供一些通用解决方案。