【发布时间】:2011-02-22 14:56:43
【问题描述】:
我正在考虑为不依赖 PHP 或 MYSQL 的 HTML5 应用程序支持多种语言。最好的现有框架是什么?有没有人有依赖 sed 的经验?
【问题讨论】:
-
除了 php mysql 之外,您是否搜索替代数据库和数据库驱动解决方案?还是在 HTML5 的客户端存储中需要一些东西?
标签: javascript html internationalization sed
我正在考虑为不依赖 PHP 或 MYSQL 的 HTML5 应用程序支持多种语言。最好的现有框架是什么?有没有人有依赖 sed 的经验?
【问题讨论】:
标签: javascript html internationalization sed
在没有 php 或 mysql 的情况下支持多种语言的最简单方法是简单地为每种语言创建一个新页面。如果您在外部文件中完成了所有 javascript 设置(就像应该正常完成一样),那么这种方法可能非常有用
【讨论】:
您必须在 JavaScript 文件中准备本地化文本,然后您可以在客户端进行(ns.localize 可以更好地实现):
<!DOCTYPE html>
<html>
<head>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js'></script>
<script>
window.ns = window.ns || { };
/* Begin file i18n.js */
ns.language = 'en';
ns.i18n = { };
ns.localize = function () {
jQuery.each(ns.i18n[ns.language], function (key, value) {
$('.' + key).text(ns.i18n[ns.language][key]);
});
};
/* End file i18n.js */
/* Begin file i18n.en.js */
ns.i18n['en'] = { };
ns.i18n['en']['title'] = 'Welcome';
ns.i18n['en']['body'] = 'It works!';
ns.i18n['en']['choice'] = 'Choose your language:';
/* End file i18n.en.js */
/* Begin file i18n.it.js */
ns.i18n['it'] = { };
ns.i18n['it']['title'] = 'Benvenuto';
ns.i18n['it']['body'] = 'Funziona!';
ns.i18n['it']['choice'] = 'Scegli la tua lingua:';
/* End file i18n.it.js */
$(document).ready(function () {
ns.localize();
$('.language').change(function () {
var language =$(this).val();
ns.language = language;
ns.localize();
});
});
</script>
<link href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css' rel='stylesheet' />
<title class='title'>i18n</title>
</head>
<body>
<h1 class='title'>i18n</h1>
<p class='body'>Test.</p>
<p>
<span class='choice'>Something:</span>
<select class='language'>
<option value='en'>English</option>
<option value='it'>Italian</option>
</select>
</p>
</body>
</html>
【讨论】:
您需要一些动态(网络服务器)语言来替换该语言,或者您需要渲染所有代码一次并为每种语言提供不同的副本。
如果您想使用 PHP,Zend_Translate 可能会有所帮助。
您不需要使用 MySQL,您可以使用数组、CVS 文件和一系列其他方法。(
【讨论】: