我想建立一个大约5页的双语网站(一个投资组合类型的页面,有简短的描述)。
这是一个包含"关于我"的个人网页。页面,"链接"和"出版物"。绝对不需要超过两种语言,也不需要超过5页。该网站将托管在某些大学网站上,这意味着服务器的要求应该非常低。此外,它将由没有编程技能的人维护。
我通读this forum discussion,其中所有人都建议进行翻译"服务器端"而不是"客户端"。
我的网站非常小,甚至大多数内容都是单语。 "翻译"实际上只是用于以两种语言轻松导航材料。也就是说,只有菜单条目和简短描述将使用两种语言。
是一个简单的CSS + JS解决方案,通过JS隐藏和显示两种语言,真是个坏主意吗?
<ul id="menu">
<li class="english">Events</li>
<li class="portuguese">Eventos</li>
</ul>
我认为这种方法有一个主要的好处:即使只使用简单的文本编辑器,它也很容易维护。
答案 0 :(得分:2)
它主要是一个补丁,最终不会扩展。你应该真正研究PHP gettext扩展。它的工作原理如下:你要翻译的每个字符串都是从php输出的。
答案 1 :(得分:1)
说到:[国际化 | 全球化 | 本地化]最受欢迎的标准之一是i18n,它从编码角度来创建资源字典&#34;。
不同的图书馆已实施标准,其原则涵盖从货币,日期和数字等转换到转化。
例如i18n-js建议使用此结构:
I18n.translations = {
en: {
hello: "Hello World!"
},
"pt-BR": {
hello: "Olá Mundo!"
},
"de": {
hello: "Hallo Welt!"
},
"nb": {
hello: "Hei Verden!"
}
};
I18n.t("hello", {locale: "en"}); //returns "Hello World!"
I18n.t("hello", {locale: "pt-BR"}); //returns "Olá Mundo!"
还有一个JQuery plug-in也可以提供帮助:
$.i18n.load({ a_key: 'translated string %2$s - %1$s' });
$.i18n._('a_key', ['order', 'in'])); //returns 'translated string in - order'
要定义结构,建议首先选择基础框架(更符合您的需求),并遵循社区的最佳实践。这将使决策过程更加引导和支持社区的经验。
How to dynamically change language using jquery-i18n-properties and JavaScript?
Angular还实现了i18n并允许在运行时切换语言:
做类似的事情:
$translate.use('es');
答案 2 :(得分:1)
只要它在语义上正确并且网站足够小以便能够管理,就不会有问题。
通过语义上的正确,我的意思是HTML文档是否有意义,如果你在它上面阅读它?如果您订购源代码,您希望如何获得双语文档,那么答案是肯定的。
我会使用lang属性而不是CSS类来决定要显示/隐藏的内容,例如:
<body class="english-site">
<div lang="en"><p>English</p></div>
<div lang="de"><p>German</p></div>
</body>
和
body.english-site [lang]:not([lang=en]) {
display: none;
}
答案 3 :(得分:0)
如果您网站的语言要求永远不会超出您的描述,那么这不是一个糟糕的主意。
请记住:如果您想进一步完成翻译,那么您将不得不从头开始进行服务器端翻译。