网站本地化(或本地化)

时间:2012-11-29 20:56:20

标签: html css html5 localization web

我最近一直在考虑将我的网站本地化,并且谷歌搜索方面有点空白。我一直在寻找如何本地化应用程序而不是网站或GeoLocation,这有点过于具体。

我希望能够使用纯HTML(5)和CSS(3)进行本地化。我希望能够在页面中本地化部分,而不是为每个国家/地区设置单独的URL。

任何对此的帮助都非常有用,所以提前感谢。

编辑:如果没有纯HTML(5)或CSS(3)方法,那么服务器端,js或其他语言的任何示例都会很有用。

1 个答案:

答案 0 :(得分:0)

这个解决方案是我在一个几乎没有html的ajax应用程序中使用的解决方案(一切都是从数据客户端生成的)。

第一部分确保您可以在网址中指定语言(例如,通过添加&lang=it)并将其存储在本地存储中(浏览器中的永久用户首选项):

myapp.available_langs = ['en', 'fr', 'it']; // the first one is the default language
// Exemples :
//   {en:'hi', fr:'Bonjour'}
//   {fr:'Bonjour'}
myapp.loc = function(map) {
    if (map[myapp.lang]) return map[myapp.lang];
    for (var i=0; i<myapp.available_langs.length; i++) {
        if (map[myapp.available_langs[i]]) return map[myapp.available_langs[i]];
    }
    return "-label not found-";
};

myapp.getUrlParameter = function(name, defaultValue) {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var results = new RegExp( "[\\?&]"+name+"=([^&#]*)" )
         .exec( document.location.href );
    if( results == null ) return defaultValue;
    else return decodeURIComponent(results[1]);
};

myapp = {};
myapp.lang = localStorage['lang'] = myapp.getUrlParameter('lang', localStorage['lang']||myapp.available_langs[0]);

在其他地方使用它是这样的:

$('body').append('<div product id=product_header>\
    ...
        <tr>\
            <td> '+myapp.loc({en:'cut',fr:'date'})+': <span id=product_cutdate>?</span></td>\
            <td> '+myapp.loc({en:'grade',fr:'qualité'})+': <span id=product_grade>?</span></td>\
            <td> '+myapp.loc({en:'length',fr:'longueur'})+': <span id=product_length>?</span> m</td>\
            <td> '+myapp.loc({en:'thickness',fr:'épaisseur'})+': <span id=product_thickness>?</span> mm</td>\
            <td> '+myapp.loc({en:'width',fr:'largeur'})+': <span id=product_width>?</span> m</td>\
        </tr>\

您可以选择也使用用户代理,但在实际公司使用中,我发现它无用。请注意,i18n解决方案可能非常多样化。我不主张使用它,这只是我喜欢的模式。许多人更喜欢在外部属性文件中提取字符串,但根据我的经验,它会导致更糟糕的翻译并且更难管理(只要一个团队讲所有涉及的语言而你没有10个)。

相关问题