让LastPass拥有简体中文界面,汉化LastPass!

一直使用浏览器插件的LastPass管理和生成密码,只说PC的Web端的体验还算是挺不错了,自动填充和自动记录都很方便。
但是最近LastPass宣布限制免费用户可访问设备类型的数量。思来想去决定先试试其他的管理软件,于是挑了开源方案中大名鼎鼎的KeePass,一番操作之后发现在PC端上的体验很一般,而且不能在登录后自动弹框提示新增或者更新,有些网站的登录组件也无法正确填充,比如AcFun,即使我设置了填充策略的白名单,它仍然会将用户名填充到搜索框,如果把搜索框的ID排除,就干脆不触发填充了。于是乎放弃了这个方案。 还是商业软件靠谱啊,暂时还是先用回LastPass吧。
不过好久没点到LastPass里面看看内容了,除了刚用那会儿,基本上没再进入过仪表盘。记得在2019年底的时候LastPass因为一些原因取消掉了中文语言的支持,于是乎一堆英文在全是中文的浏览器里格外刺眼,之前没怎么点开看还不要紧,现在带着点小情绪点开还怪难受的。虽然说都是简单易懂的单词,但是能汉化还是给它整成简体中文吧。
对应的汉化资源和步骤位于文章末尾。

汉化分析

总所周知,大多数应用的i18n是通过本地的Map类型的数据结构来映射本地化文本,因此只要编辑插件的本地化文件就可以达到汉化的目的。
而Chrome插件的资源也仅仅是简单的打包起来,因此本地化文件还是很好获取的。

  1. 在通过更多工具->扩展程序或者输入chrome://extensions/即可打开扩展程序页面
  2. 打开右上角的开发者模式。这时候LastPass对应的卡片会显示它的ID。这个ID是固定的hdokiejnpimakedhajhdlcegeplioahd
  3. 进入Chrome存放插件的目录%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Extensions\hdokiejnpimakedhajhdlcegeplioahd
  4. 在目录中可以看到以版本号命名的文件夹,这个就是LastPass插件解压安装后的文件了。

进入文件夹,一眼就看到_locales,好家伙,就是你了。
打开后,果不其然是几个以地区语言缩写命名的子文件夹,每个文件夹中有一个messages.json文件,内容被格式化的JSON字符串,key是字段名称,value是一个JSON对象,对象包含一个属性message,其值便是该字段对应的本地化文本。
起初我想通过增加一个zh_CN的文件夹和文件来新增一个对中文支持,一番折腾后发现想多了:无法直接修改html源码,否则Chrome插件的安全机制会提示插件损坏。
虽然肯定可以重新打包再以开发者模式载入,但是作为密码管理软件,本着安全的想法,还是算了,另谋出路。
既然新增文件不行,那只能通过修改已有的本地化文件来获得汉化支持了。于是我挑了de也就是German对应的本地化文件。稍微修改部分文本后,选择语言然后重新加载插件,确实能达到汉化的目的。
但是我发现了一个问题,LastPass中vault的有些页面内容并不是通过本地资源进行加载的,修改成德语的话这些内容就会以德语显示。
那还是修改英文吧,于是备份一下英文的文件,开始了汉化之路。
用文本编辑器打开messages.json,好家伙快八千行,起码有一两千个字段,手动去修改肯定是不现实的。既然以前有汉化支持,感觉现在界面也没太大差,不如先把旧的汉化文本替换进去,看看能汉化多少。
于是我去下载了日期比较相近的旧版本插件,拿到了旧的简体中文本地化文件,也有足足两千条数据。然后写了一个脚本,根据key的交集集合去替换对应的汉语文本,写出到文件中,然后丢到_localesen_US目录中,替换掉原来的messages.json(这里记得备份原来的英文文件)。然后重新打开浏览器或者加载插件,果不其然,插件按钮的界面大部分汉化完毕,仅有几条仍是英文文本,这些大概是后来加上的功能,计算了一下有七八百条吧。不过现在的界面,几条中文夹杂着一条英文看着也怪难受的,特别是在主要界面上面。大概扫了一眼,基本上都是1到4个单词组成的简单文本,干脆再写个脚本机翻一下这些单词,因为单词简单,所以就算是机翻也不会太离谱。
导入最后生成的文件,然后重新打开浏览器,那些突兀的英文条目也不见了,而且基本上日常用的地方都汉化了。当然机翻也并非完全靠谱,比如它把Done翻译成了多恩,最后手动修改了几个恰好看到的地方,也算是大功告成了。

汉化后效果

添加旧汉化文本

LastPass-简单汉化

完全汉化后

LastPass-完全汉化

如何进行设置

设置步骤

相关资源已经上传至Github,打开本地化文件下载后选择一个任意一个本地化文件下载(文件差异见下方),并修改文件名为messages.json

  1. 打开LastPass插件所在目录。通常命名为C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data\Default\Extensions\hdokiejnpimakedhajhdlcegeplioahd\(Chrome version 87.0.4280.88)。可以试图在地址栏输入%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Extensions\hdokiejnpimakedhajhdlcegeplioahd或者搜索hdokiejnpimakedhajhdlcegeplioahd来打开该目录。
  2. 目录中包括一个以版本号命名的文件夹,如:4.65.0.3_0。进入该文件夹,然后找到_locales文件夹,打开其中的en_US文件夹。
  3. 下载github中的messages.json,替换/覆盖en_US文件夹中原有的文件。此处可以先对原文件进行备份,以便恢复英文版本。
  4. 确保LastPass的语言选项是English。(默认已经是English)。
  5. 关闭浏览器并重新打开。
  6. 至此界面文本已经呈现简体中文。

不同文件的差异

messages_old.json:仅提取了旧版本插件的汉化信息并进行替换。
messages_include_word_in_1_4.json:在message_old.json的基础上,利用机器翻译批量翻译了单词量在1到4之间的文本,但是忽略掉了一些带有特殊符号的文本。
messages.json:在message_old.json的基础上,利用机器翻译批量翻译了大部分文本(排除了一些带有特殊功能符号的文本),并人工修正了一些翻译内容。

评论

  1. 3 年前
    2021-8-02 14:58:39

    厉害,在4.77版本上也全都是中文了 😎

  2. 你牛逼
    2 年前
    2022-11-30 0:51:22

    牛 赞一个

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇