Translater.JS 巧用 HTML 注释翻译页面,是不是很酷?

2016-03-30 11:18:06 +08:00
 jaywcjlove

translater.js

这是一个利用 HTML 注释的页面翻译解决方案。对于少量的静态页面,这种解决方案显得更简单。它没有依赖,压缩只有只有(~2kb)。

Translater.js 官网

作为模块安装

$ npm install translater.js

传统使用方法

<div>
    这里是中文
    <!--{jp}ここは日本語です-->
    <!--{en}Here is English-->
</div>
<script src="../dist/translater.min.js" type="text/javascript"></script>
<script type="text/javascript">
var tran = new Translater({
    lang:"jp"
});
</script>

切换语言方法通过超链接

<a href="javascript:tran.setLang('default');">English</a>
<a href="javascript:tran.setLang('jp');">日本語</a>
<a href="javascript:tran.setLang('cn');">中文</a> 

可以通过 URL 穿参数设置语言

http://127.0.0.1:9005/test/test.html?lang=jp

文本翻译添加

<div>
    这里是中文
    <!--{jp}ここは日本語です-->
    <!--{en}Here is English-->
</div>

图片切换

<img alt="images" src="../img/imgae.jpg" data-lang-cn="../img/imgae_cn.jpg" data-lang-jp="../img/imgae_jp.jpg" />
4793 次点击
所在节点    JavaScript
28 条回复
iyaozhen
2016-03-30 11:21:46 +08:00
赞,挺不错的,很有意思
jaywcjlove
2016-03-30 11:26:48 +08:00
@iyaozhen 小创意 😄
learnshare
2016-03-30 11:28:16 +08:00
思路不错,不过相对于注释,用 data-* 来做更合适一些,因为 HTML 压缩的时候一般会选择清除注释。
jaywcjlove
2016-03-30 11:30:17 +08:00
@learnshare 如果`<div>dssdds<i>sdd</i></div>` 这个样子放到`data-*` 会把标签弄没了...
chaegumi
2016-03-30 12:24:00 +08:00
感觉一点也不好,有没有考虑过优化。如果你就后台用用当我没说
chaegumi
2016-03-30 12:24:17 +08:00
@chaegumi seo 优化
murmur
2016-03-30 12:29:02 +08:00
创意很好,但是实际上无卵用,因为多语言的网站不仅仅是文字差别,还有文化差别,你要展现给别人的内容也不一样,所以一般都是做 N 套网站
jaywcjlove
2016-03-30 12:35:07 +08:00
@murmur 那倒是,虽然是这个样子,但是也有部分网站你切好多个国家 样式都是一样的,比如 apple.com 。虽然没有什么卵用,但是偶尔临时解决方案很不错的哦。只是把自己的灵感实现出来,没有什么别的意图 😄
zrp1994
2016-03-30 12:47:11 +08:00
注释容易被压缩清掉,建议换成 script 标签
learnshare
2016-03-30 12:52:00 +08:00
@jaywcjlove 翻译的是文本,不应该包含标签
jaywcjlove
2016-03-30 12:54:15 +08:00
@zrp1994 好想法,可以配置一下通过 script 或者注释来切换。😄 我建个 issue 回头撸起来
qq316107934
2016-03-30 13:26:46 +08:00
好方便啊,有种 web 版的 lang.ini 的感觉
jaywcjlove
2016-03-30 13:34:02 +08:00
@qq316107934 来这里搜集一点创意
jjplay
2016-03-30 14:35:19 +08:00
非常好的创意 是一款轻量级简化的翻译方式,我曾经也 get 过注释来生成内容, star !
davin
2016-03-30 15:36:18 +08:00
这点子确实不错!现在也有很多是放在 noscript 里面的。
jejer
2016-03-30 15:56:25 +08:00
很酷
byenow
2016-03-30 16:02:41 +08:00
对于小项目确实是个便捷的办法,已 star~
4641585
2016-03-30 16:05:20 +08:00
插嘴问一下:

正文上方那一排 svg 可以在哪里找到?
jaywcjlove
2016-03-30 16:11:42 +08:00
@4641585

这个是我弄的傻傻的纯静态: https://jaywcjlove.github.io/sb

这个是国际大品牌动态的: http://shields.io/
murmur
2016-03-30 16:30:46 +08:00
@jaywcjlove 没错,我主要是想,多语言这么有用的东西,如果这么多年都没有人做,那一定是有他存在的缺陷,我又仔细看了一下苹果的内容,比如销售策略,他每个国家的条款都不一样,只不过因为全局保持了一样的布局而已。的却按楼上各位大神回复,作为小网站用用还是不错的,但是内容一多,实际上每个页面就加载了三倍的文字数据量(假设 3 种语言。。)
而且你看到了,苹果的英文和中文是差了 apple tv 的。。所以说多语言并不是简单的文字翻译,很多细节没法用插件实现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/267295

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX