【问题标题】:What are the alternatives to MySQL + PHP for HTML/javascript i18n?用于 HTML/javascript i18n 的 MySQL + PHP 的替代品有哪些?
【发布时间】:2011-02-22 14:56:43
【问题描述】:

我正在考虑为不依赖 PHP 或 MYSQL 的 HTML5 应用程序支持多种语言。最好的现有框架是什么?有没有人有依赖 sed 的经验?

【问题讨论】:

  • 除了 php mysql 之外,您是否搜索替代数据库和数据库驱动解决方案?还是在 HTML5 的客户端存储中需要一些东西?

标签: javascript html internationalization sed


【解决方案1】:

在没有 php 或 mysql 的情况下支持多种语言的最简单方法是简单地为每种语言创建一个新页面。如果您在外部文件中完成了所有 javascript 设置(就像应该正常完成一样),那么这种方法可能非常有用

【讨论】:

  • 有使用 sed 的经验吗?
【解决方案2】:

您必须在 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>

【讨论】:

  • 这很酷,但需要单独解决javascript翻译,并且在客户端需要循环......但是谢谢!
【解决方案3】:

您需要一些动态(网络服务器)语言来替换该语言,或者您需要渲染所有代码一次并为每种语言提供不同的副本。

如果您想使用 PHP,Zend_Translate 可能会有所帮助。

您不需要使用 MySQL,您可以使用数组、CVS 文件和一系列其他方法。(

【讨论】:

    猜你喜欢
    • 2010-09-25
    • 1970-01-01
    • 2012-12-18
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多