vue选择语言翻译页面

文章介绍了如何使用uniapp和js在项目中实现HTML页面的全自动翻译,无需改动页面,无需语言配置文件和APIKey,且对SEO友好。在onLaunch生命周期内执行代码,设置翻译语言和监听页面变化,即可自动翻译。还提供了自定义翻译的示例,以应对特定繁体语言类型的区分需求。

git 克隆 或者下载下来 translate: 两行js实现html全自动翻译,页面无需改动,无语言配置文件,无API Key,对SEO友好!

README.md · 鬼画符/translate - 码云 - 开源中国 (gitee.com)

在utils下导入

 

在translate.js内默认导出

 

这里使用的是uniapp实例,在app.vue的onLoanch生命周期内执行

 

 之后在页面中写好需要翻译的语言类型和样式

 这里以三种语言为实例

自定义翻译

使用场景:默认翻译成繁体是区分不了 港澳台三种繁体语言类型 使用自定义翻译可以实现业务

默认 简体 => 繁体

 

 自定义实现效果 

 实现:

 调用内置方法

translate.nomenclature.append(from, to, properties);

传入参数说明:

  • from 要转换的语言,传入,例如“chinese_simplified”
  • to 翻译成目标语言,传入“要翻译的语言类型”
  • properties 配置表格,格式为属性的格式,每行一个规则,前后各用等号分隔,等号前为待翻译的单词或句子,等号后为自定义翻译结果
onLaunch(() => {

  translate.setUseVersion2() //设置使用v2.x 版本
  translate.language.setLocal('chinese_simplified') //设置本地语种(当前网页的语种)。如果不设置,默认就是 'chinese_simplified' 简体中文。 可填写如 'english'、'chinese_simplified' 等,具体参见文档下方关于此的说明
  translate.listener.start() //开启html页面变化的监控,对变化部分会进行自动翻译。注意,这里变化区域,是指使用 translate.setDocuments(...) 设置的区域。如果未设置,那么为监控整个网页的变化
  translate.execute() //执行翻译初始化操作,显示出select语言选择
  translate.nomenclature.append('chinese_simplified','chinese_traditional',`
  商品分类=商品分類111
  香水=xiangshui
  `)
})

 

<think>好的,用户想在Vue项目中禁用浏览器的网页翻译功能。首先,我需要回忆一下常见的禁用网页翻译的方法。通常,浏览器会根据网页内容或特定的HTML标签和HTTP头来决定是否提供翻译选项。例如,Google Chrome会检查页面中的语言设置,如果页面有明确的语言声明,可能会自动提示翻译。 用户可能已经尝试过一些方法,但没有成功,或者他们可能在构建Vue应用时遇到了缓存问题,导致设置没有生效。根据用户提供的引用内容,他们之前处理过缓存问题,可能现在遇到了类似的问题,即设置没有正确应用到生产环境中。 接下来,我需要考虑在Vue项目中如何实现禁用翻译。一种常见的方法是在HTML的meta标签中添加`google`或者`googlebot`的`notranslate`值。例如,使用`<meta name="google" content="notranslate">`。另外,设置页面的语言属性也是一个关键点,比如通过`<html lang="zh-CN">`明确指定语言,这样浏览器可能不会主动提示翻译,特别是当用户的语言设置与页面语言一致时。 另外,HTTP头部信息中的`Content-Language`也可能影响浏览器的翻译行为。不过,在Vue项目中,这通常需要后端配置,比如在Nginx或Apache服务器上设置相应的响应头。用户可能需要检查他们的服务器配置是否包含这些设置。 此外,Vue项目的构建配置可能会影响最终生成的HTML文件。例如,在vue.config.js中,可能需要确保生成的index.html包含必要的meta标签。用户可能已经配置了缓存相关的meta标签,但需要添加禁用翻译的meta标签。需要检查public/index.html文件,确保这些标签被正确添加。 同时,用户可能遇到缓存问题,导致修改后的meta标签没有生效。这时候可能需要参考之前处理缓存的方法,比如在打包时添加时间戳,或者配置服务器不缓存index.html文件。用户提供的引用中提到在vue.config.js中按时间戳打包,这可以确保浏览器获取最新的文件,避免缓存旧的没有禁用翻译设置的版本。 另外,需要注意不同浏览器对禁用翻译的支持可能不同。例如,Chrome和Edge可能对`google`的meta标签更敏感,而其他浏览器可能需要不同的方法。可能需要综合使用多种方法,比如同时设置meta标签和HTTP头部,以达到更广泛的兼容性。 最后,可能需要测试不同的方法组合,确保在各种情况下都能有效禁用翻译功能。例如,在HTML中添加多个meta标签,明确指定不翻译,同时在后端配置合适的HTTP头部,并且确保构建过程正确应用这些更改,避免缓存问题干扰。</think>在Vue项目中禁用浏览器网页翻译功能可以通过以下方法实现: ### 一、通过HTML meta标签控制 1. 在`public/index.html`的`<head>`中添加禁止翻译声明: ```html <meta name="google" content="notranslate"> <meta name="robots" content="notranslate"> ``` 2. 设置明确的语言标识: ```html <html lang="zh-CN"> <!-- 指定中文为页面主要语言 --> ``` ### 二、通过HTTP响应头配置 在Web服务器(Nginx/Apache)配置中添加: ```nginx add_header X-Google-Translate "off"; add_header Content-Language "zh-CN"; ``` ### 三、Vue项目构建注意事项 1. 确保`public/index.html`修改生效 2. 推荐在`vue.config.js`中配置哈希文件名避免缓存: ```javascript module.exports = { filenameHashing: true, chainWebpack: config => { config.output.filename('[name].[hash:8].js') } } ```
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值