Hexo双语切换
- 格式:doc
- 大小:141.50 KB
- 文档页数:6
hexo的cover用法示例Hexo是一个快速、简洁且高效的静态博客框架,可以帮助用户快速搭建个人博客。
在Hexo中,Cover是指博客文章的封面图像,是展示文章主题和内容的重要元素。
本文将介绍Hexo的Cover用法,并通过示例展示如何使用Cover来增加博客文章的吸引力。
在Hexo中,Cover可以在文章的Front-matter中进行设置。
Front-matter是指位于文章正文之前、用于定义文章元数据的区域。
在Front-matter中,可以使用cover 字段来设置文章的封面图像。
示例如下:```yamltitle: "使用Hexo的Cover功能"date: 2022-01-01cover: /images/cover.jpgcategories:- 技术tags:- Hexo- 博客```在上述示例中,cover字段的值为`/images/cover.jpg`,即指定了文章的封面图像为路径为`/images/cover.jpg`的图片。
用户可以根据自己的需求,指定任何有效的图像路径作为封面图像。
通过在文章的Front-matter中设置cover字段,Hexo会自动根据指定的封面图像路径,在博客主页和文章详情页中显示对应的封面图像。
在博客主页中,封面图像会作为文章的缩略图展示。
用户可以在配置文件`_config.yml`中的`index_generator`部分设置缩略图的大小和显示格式。
示例如下:```yamlindex_generator:path: blog/per_page: 10order_by: -datethumbnail_size:width: 300height: 200thumbnail_format: png```在上述示例中,设置了缩略图的宽度为300像素、高度为200像素,并将缩略图的格式设置为png。
在文章详情页中,封面图像会作为文章的头部图像展示。
winform中英文切换最简单的方法介绍在W in Fo rm应用程序开发中,有时候需要实现中英文切换的功能。
本文将介绍一种最简单的方法来实现这一功能,方便开发者进行多语言应用程序的开发。
准备工作在开始实现中英文切换功能之前,需要进行一些准备工作。
资源文件1.:创建两个资源文件,一个用于存储中文文本,另一个用于存储英文文本。
这些资源文件可以通过右键单击项目->添加->新建项->资源文件来创建。
设置窗体控件文本2.:将窗体上的所有需要切换的控件的Te x t属性值设置为对应的资源文件中的键值。
例如,如果一个按钮的Te x t属性为"确定",则在资源文件中的中文资源中添加键值对:"确定"=>"确定",在英文资源中添加对应的键值对:"确定"=>"OK"。
实现中英文切换以下是实现中英文切换的具体步骤:获取当前语言1.:创建一个静态变量`c u rr en tL an gu ag e`,用于记录当前语言。
默认情况下,将其设置为中文。
切换语言2.:当需要切换语言时,将`c u rr en tL an gu ag e`的值变更为对应的语言,例如切换为英文时将其设置为"e n"。
更新窗体文本3.:创建一个方法`U pd at e Fo rm Te xt`,用于更新窗体上所有控件的文本。
遍历窗体上的所有控件,检查其类型。
若为标签、按钮等控件,则根据`c u rr en tL an gu ag e`的值获取对应的资源文件中的文本,并更新控件的Te x t属性。
语言切换按钮4.:在窗体上添加一个按钮,用于切换语言。
为按钮的C l ic k事件添加以下代码:```c sh ar pp r iv at ev oi db tn Swi t ch La ng ua ge_C lic k(o bj ec ts en de r,E v en tA r g s e){i f(c ur re nt La ng uag e=="z h-CN")c u rr en tL an gu ag e="e n";e l sec u rr en tL an gu ag e="z h-CN";U p da te Fo rm Te xt();}```窗体加载事件5.:在窗体的Lo ad事件中调用`Up da te Fo rm T ex t`方法,确保窗体加载时显示正确的语言。
软件中的多语言支持和翻译功能如何操作嘿,朋友!咱们今天来聊聊软件中的多语言支持和翻译功能到底咋操作。
先来说说多语言支持这一块儿。
您有没有过这样的经历,打开一个国外的软件,结果满屏的外文,瞬间头都大了。
这时候多语言支持就像救星一样!比如说我之前用一款国外的设计软件,打开一看全是英文,找设置找了半天,才发现可以切换语言的选项。
一般来说,多语言支持在软件的设置菜单里就能找到。
有的软件会很直接,“Language”这个词明晃晃地摆在那,您点进去就能看到各种语言选项,中文、法语、西班牙语等等,选到您想要的语言,然后保存或者确认,软件界面就会变成熟悉的语言啦。
但有的软件就比较“调皮”,它不直接写“Language”,可能会写成“语言设置”或者“多语言切换”之类的,这就得靠您的火眼金睛去发现了。
再说说翻译功能。
这可真是个神奇的东西!比如说您在浏览外文网页的时候,遇到不认识的单词或者句子,很多浏览器都自带翻译功能。
您只要右键点击,就能看到“翻译”这个选项。
我记得有一次我在网上找一个技术资料,是德文的,我那德文水平简直惨不忍睹。
还好浏览器有翻译功能,一点击,瞬间就变成能看懂的中文了,那种感觉就像是在黑暗中突然看到了光明。
还有一些专门的翻译软件,功能更强大。
它们不仅能翻译文字,还能翻译图片、语音。
就像有一次我去国外旅游,在餐厅点菜,菜单全是外文,我就用手机上的翻译软件对着菜单拍照,马上就给我翻译出来了,让我能顺利点到自己想吃的美食。
另外,现在很多办公软件也有翻译功能。
比如在 Word 文档里,如果您有一段外文需要翻译,选中那段文字,然后在菜单栏里找到“翻译”,就能得到您想要的译文。
而且有的还能提供多种翻译结果供您选择,是不是很贴心?不过,在使用这些多语言支持和翻译功能的时候,也会有一些小状况。
有时候翻译出来的内容可能不太准确,会闹一些小笑话。
就像有一次我用翻译软件翻译一句幽默的话,结果翻译出来的意思完全变了,让人哭笑不得。
⽹页中英⽂语⾔切换解决⽅案 很多公司都喜欢把公司⽹站搞成双语⾔的,常见的办法是:做两份相同的程序,然后⽤不同的⽂件夹区分开来,然后点切换语⾔时,链接到不同的⽂件夹去就OK了,这种办法呢,如下: 好处是:各⾃的版本是分离开来的,⽐较稳定,不会出现互相⼲扰(共⽤数据库资料的除外!)等情况; 弊端是:改动⼀个功能,要把变更的操作(代码逻辑啊、图⽚PS啊、还有数据库等等)在所有的语⾔版本上⾯再重复⼀次,加重了操作量。
本来打算这样⼦搞的,但上头发话了,这样⼦代码管理⽐较⿇烦,让哥哥想别的办法喔...那就想咯,别说,还真的想出了⼀个⽅法,虽然还未成熟,也不太稳定,但胜在不⽤修改原来的逻辑代码,⽽且只有⼀份代码够⽤了(是“够⽤”,不“是完美哦”!),我就不卖关⼦了,反正也不是什么秘密:说⽩了,其实就是⽤ js的replace()⽅法处理的,嘿嘿,只不过为了能让它能够快速布置,所以,需要做⼀些规范,怎么规范呢?还不太成熟哈,接着往下看就清楚了。
页⾯在客户端处显⽰给user看的都是<body>...</body>中的内容,既然如此,我直接把<body>...</body>中的内容中需要replace的中⽂全部replace掉再呈现出来就OK了吧,说⼲就⼲,直接先写⼀个“翻译字典”⽅法,如下:dict.js1function setEnglish(bodyString) {2var result = bodyString;3 result = result.replaceAll('發料量','Issue Qty');4 result = result.replaceAll('單位別','Unit');5 result = result.replaceAll('待交運','To be Delivered');6 result = result.replaceAll('應發量','Shoulsd Issue');7 result = result.replaceAll('應⽤量','Should Use');8 result = result.replaceAll('操作者','Operator');9 result = result.replaceAll('編輯中','Editing');10 result = result.replaceAll('確認者','Confirmed By');11 result = result.replaceAll('需求量','Required Qty');12 result = result.replaceAll('需求⽇','Required Day');13 result = result.replaceAll('實⽤量','Used Qty');14 result = result.replaceAll('跨⼯單','Inter-Shop Order');15 result = result.replaceAll('經辦⼈','Prepared by');16 result = result.replaceAll('損耗率','Yield Loss Rate');17 result = result.replaceAll('超耗量','Over Consumption ');18 result = result.replaceAll('超⽐例','Over-proportional');19 result = result.replaceAll('結案⽇','Close Date');20 result = result.replaceAll('發料量','Issue Qty');21 result = result.replaceAll('換⼯單','Change Shop Order');22 result = result.replaceAll('提報數','Report Qty');23 result = result.replaceAll('報廢量','Scrap Form');24 result = result.replaceAll('報廢單','Scrap Form');25 result = result.replaceAll('報廢品','Scrap Unit');26 result = result.replaceAll('單位別','Unit');27 result = result.replaceAll('移轉數','Transfer Qty');28 result = result.replaceAll('移⼊量','Move In Qty');29 result = result.replaceAll('異動碼','Transaction Code');30 result = result.replaceAll('接受量','Received Qty');31 result = result.replaceAll('庫存量','Inventory');32 result = result.replaceAll('凈移轉','Net Transfers');33 result = result.replaceAll('待發量','To be Issued');34 result = result.replaceAll('待報廢','To be Scrapped');35 result = result.replaceAll('待處理','To be Processed');36 result = result.replaceAll('待重⼯','To be Reworked');37 result = result.replaceAll('待交運','To Be Delivered');38 result = result.replaceAll('待分配','To be Assigned');39 result = result.replaceAll('物流中','Logistics');40 result = result.replaceAll('來料量','Incoming Qty');41 result = result.replaceAll('良品數','Good Unit Qty');42 result = result.replaceAll('材料批','Component Part Lot Batch');43 result = result.replaceAll('投⼊數','Input Qty');44 result = result.replaceAll('完成⽇','Completion Date');45 result = result.replaceAll('在製量','WIP');46 result = result.replaceAll('在移量','Transit Qty');47 result = result.replaceAll('全 部','All');48 result = result.replaceAll('分派數','Distribute Qty');49 result = result.replaceAll('不良數','Reject Qty');50 result = result.replaceAll('已檢驗','Inspected');51 result = result.replaceAll('已移轉','Transferred');52 result = result.replaceAll('已交運','Shipped');53 result = result.replaceAll('⼯單號','Shop Order No.');54 result = result.replaceAll('下⼯站','Next Operation');55 result = result.replaceAll('上⼯站','Previous Operation');56 result = result.replaceAll('⼊檢序','Incoming Inspection Operation ');57 result = result.replaceAll('⼊料量','Incoming Qty');58 result = result.replaceAll('創建者','Founder');59 result = result.replaceAll('請選擇','Please Choose');60 result = result.replaceAll('編輯中','Editing');61 result = result.replaceAll('物流中','In Logistics');62 result = result.replaceAll('待處理','To be Processed');63 result = result.replaceAll('待重⼯','To be Reworked');64 result = result.replaceAll('待報廢','To be Scrapped');65 result = result.replaceAll('待分配','To be Assigned');66 result = result.replaceAll('待交運','To be Delivered');67 result = result.replaceAll('已檢驗','Inspected');68 result = result.replaceAll('已移轉','Transferred');69 result = result.replaceAll('全 部','All');70 result = result.replaceAll('移轉單','Transfer Form');71 result = result.replaceAll('報廢單','Scrap Form');72 result = result.replaceAll('待交運','To be Delivered');73 result = result.replaceAll('淨移轉','Net Transfers');74 result = result.replaceAll('經辦⼈','Operator');75 result = result.replaceAll('确定者','Affirmant');76 result = result.replaceAll('⽇期起','Start Date');77 result = result.replaceAll('測試區','Test');78 result = result.replaceAll('導出','Export');79 result = result.replaceAll('料號','Part No.');80 result = result.replaceAll('⼯單','Shop Order');81 result = result.replaceAll('鏈接','Hyperlink');82 result = result.replaceAll('儲位','Location');83 result = result.replaceAll('選擇','Option');84 result = result.replaceAll('機種','Model');85 result = result.replaceAll('導出','Export');86 result = result.replaceAll('確定','OK');87 result = result.replaceAll('標記','Symbol');88 result = result.replaceAll('標⼯','Standard');89 result = result.replaceAll('廠商','Supplier');90 result = result.replaceAll('新建','New');91 result = result.replaceAll('搜索','Search');92 result = result.replaceAll('⽤⼾','User ID');93 result = result.replaceAll('密碼','Password');94 result = result.replaceAll('語⾔','Language');95 result = result.replaceAll('確認','Confirm');96 result = result.replaceAll('損耗','Yield Loss');97 result = result.replaceAll('移出','Move Out');98 result = result.replaceAll('料號','Part No.');99 result = result.replaceAll('料件','Material Part');100 result = result.replaceAll('倉庫','Store');101 result = result.replaceAll('重⼯','Rework');102 result = result.replaceAll('客⼾','Customer Name'); 103 result = result.replaceAll('品保','QA');104 result = result.replaceAll('時間','Date');105 result = result.replaceAll('返回','Back');106 result = result.replaceAll('注解','Remarks');107 result = result.replaceAll('類型','Type');108 result = result.replaceAll('周數','Weeks');109 result = result.replaceAll('其他','Others');110 result = result.replaceAll('良品','Good Unit');111 result = result.replaceAll('材料','Component Part'); 112 result = result.replaceAll('批號','Lot Batch No.'); 113 result = result.replaceAll('批量','Lot Size');114 result = result.replaceAll('作成','Made');115 result = result.replaceAll('余量','Margin');116 result = result.replaceAll('⽤量','Used Qty');117 result = result.replaceAll('⽅式','Approach');118 result = result.replaceAll('⼯單','Shop Order');119 result = result.replaceAll('⼯序','Operation No.'); 120 result = result.replaceAll('⼯序','Operation ');121 result = result.replaceAll('⼈⼯','Manpower');122 result = result.replaceAll('狀態','Status');123 result = result.replaceAll('其他','Others');124 result = result.replaceAll('⼯單','Shop Order');125 result = result.replaceAll('新建','New');126 result = result.replaceAll('導出','Export');127 result = result.replaceAll('其他','Others');128 result = result.replaceAll('搜尋','Search');129 result = result.replaceAll('料號','Part No.');130 result = result.replaceAll('全部','All');131 result = result.replaceAll('返回','Back');132 result = result.replaceAll('廠區','Factory');133 result = result.replaceAll('查詢','Search');134 result = result.replaceAll('确定','Confirm');135 result = result.replaceAll('部⾨',' Department');136 result = result.replaceAll('操作','Operation');137 result = result.replaceAll('移⼊','Move In');138 result = result.replaceAll('單位','Unit');139 result = result.replaceAll('說明','Description');140 result = result.replaceAll('數量','Qty');141 result = result.replaceAll('保存','Save');142 result = result.replaceAll('儲','Store');143 result = result.replaceAll('倉','Store');144 result = result.replaceAll('批','Batch');145 result = result.replaceAll('迄','Until');146 result = result.replaceAll('⼊','In');147 result = result.replaceAll('出','Out');148149return result;150 }PS:这个⽅法就是把传进来的东西进⾏翻译后,再把翻译的结果return回去的,注意:js⾥⾯没有replaceAll这个⽅法的,上⾯的是我⾃⼰加上去的,后⾯会给出;还有,根据翻译的字段长短,先把replace长的,再replace短的,长的⼀般⽤replace()就够了,短的最好⽤replaceAll(),当然有特殊情况的,这⾥不多说,反正遇到了就明⽩怎么整了;另外,怎么这么长的?呵呵,这部分可以找别⼈提供,还有,上⾯这些“result = result.replaceAll(.....)”是我直接在Excel导出来的(当然,中英对照表是让别的同事搞的,不必亲⾃出马),⽹上会的⼈应该⽐较多,排序⿇,需要⼀点点技巧,但不难,所以不⽤怕,当然,我QQ空间⽇志有⼀篇⽇志⾥有提到,没加到俺QQ的,可以让你妹妹或姐姐啊加我也⾏,我这个⼈⽐较随和的,哈。
更改WordPress语言设置(例如中文版和英文版转换)
WordPress大学
易多云免备案虚拟主机,新用户免费试用15天,一键安装Wordpress,点此查看详情!
如果你想更改WordPress的语言,比如将英文版转换为中文版,或者将中文版转换为英文版,该如何操作?其实很简单,打开网站根目录下的wp-config.php,然后搜索define('WPLANG' 就可以快速定位到语言设置那里,比如简体中文版默认为:
1.define('WPLANG', 'zh_CN');
如果要改为英文版,只需修改为:
1.define('WPLANG', '');
需要注意的是,WordPress官方英文版不包含任何语言包,也就是你在 /wp-content/ 目录下看不到 languages 文件夹,即使你设置为 zh_CN ,也不会生效,因为没有简体中文语言包!所以你必须下载对应语言的版本,解压后将 /wp-content/ 目录下 languages 文件夹(及其里面的文件)上传到你网站的 /wp-content/ 目录。
WordPress简体中文官方:
其他语言的版本,可以在这里找到:
注:WordPress 4.0 及以上版本,可直接
在后台-设置-常规,设置“站点语言”,不再
需要在 wp-config.php 定
义 define('WPLANG' 啦!!
请尊重我们的辛苦付出,未经允许,请不要转载WordPress大学的文章!。
hexo butterfly 文章美化(实用版)目录1.Hexo 的介绍2.Hexo 的 Butterfly 插件3.Butterfly 插件的功能4.如何使用 Butterfly 插件美化文章5.总结正文Hexo 是一款非常受欢迎的静态网站生成器,它帮助用户轻松创建并管理自己的博客。
为了让博客更加美观,Hexo 提供了许多插件,其中 Butterfly 插件就是一款非常实用的文章美化工具。
Butterfly 插件可以为你的文章添加丰富多彩的样式,让你的文章更具吸引力。
它提供了多种主题供用户选择,无论是简约的清新风格,还是复古的典雅风格,都可以在 Butterfly 插件中找到。
同时,Butterfly 插件还支持自定义样式,用户可以根据自己的喜好调整文章的排版、字体、颜色等。
使用 Butterfly 插件美化文章非常简单。
首先,确保你的 Hexo 博客已经安装了 Butterfly 插件。
如果还没有安装,可以通过 Hexo 的命令行工具安装:`hexo 插件安装 butterfly`。
安装完成后,进入你的博客目录,使用文本编辑器打开_config.yml 文件,找到"plugins"部分,确认 Butterfly 插件已经添加到其中。
接下来,在写文章的时候,只需要在 Markdown 语法中使用 Butterfly 插件提供的样式即可。
例如,如果你想给文章添加一个标题,可以使用`##`,然后Butterfly 插件会自动为标题添加样式。
同样,如果你想给文章添加一个列表,可以使用`-`,然后 Butterfly 插件会自动为列表添加样式。
使用 Butterfly 插件美化文章,不仅可以让你的博客更加美观,还可以提高读者的阅读体验。
当然,除了 Butterfly 插件之外,Hexo 还有许多其他的插件,比如图床插件、评论插件等,这些插件都可以让你的博客更加丰富和完善。
总的来说,Hexo 的 Butterfly 插件是一款非常实用的文章美化工具,它让用户可以轻松地为文章添加丰富多彩的样式,提高博客的美观程度和阅读体验。
hexo主题butterflyscss变量在Hexo主题开发中,使用Butterfly SCS变量可以方便地管理主题的样式和配置。
下面是一些使用Butterfly SCS变量的示例:1. 主题颜色变量在Butterfly SCS中,可以使用`@primary-color`变量来设置主题的主要颜色。
你可以在主题的`_config.scss`文件中设置该变量的值,以全局定义主题颜色。
例如:```scss$primary-color: #ff0000; // 设置主题主要颜色为红色```你还可以在主题的样式表中为特定的元素设置不同的颜色。
例如,在`_includes/custom/header.ejs`文件中,你可以使用`@primary-color`变量来设置导航栏的背景颜色:```scss.header {background-color: @primary-color;}```2. 主题字体变量你可以使用`@font-family`变量来设置主题的字体家族。
例如:```scss$font-family: 'Arial', sans-serif; // 设置字体家族为Arial```然后,在主题的样式表中引用该变量,以应用字体样式。
例如,在`_includes/custom/footer.ejs`文件中,你可以使用`@font-family`变量来设置页脚区域的字体样式:```scss.footer {font-family: @font-family;}```3. 主题布局变量你可以使用Butterfly SCS中的布局变量来定义主题的页面布局。
例如,你可以使用`$layout`变量来设置整个网站的布局方式。
以下是一个示例:```scss$layout: 'default'; // 设置布局为默认布局```你还可以在主题的样式表中为特定的页面或区域定义不同的布局。
火狐扩展简繁互译
你可以通过以下步骤在火狐浏览器中添加简繁互译扩展:
1. 打开火狐浏览器,点击右上角的扩展图标,进入管理扩展页面。
2. 在搜索框中输入“翻译”,并按回车键进行搜索。
3. 选择一个翻译插件,点击进入安装页面。
4. 点击“添加到Firefox”按钮,安装完成后会显示一个添加窗口,点击添加按钮即可。
5. 安装完成后,点击右上角的扩展图标,即可看到添加的翻译插件。
6. 进入需要翻译的网页,框选需要翻译的内容,旁边会出现一个划词翻译的图标,点击该图标即可完成翻译。
需要注意的是,不同的火狐浏览器版本和翻译扩展可能会有所不同,具体操作可能会有所差异。
hexo用法Hexo是一个基于Node.js的静态博客框架,可以将Markdown 文件转换成静态网页。
下面是Hexo的基本用法:1. 安装Hexo:打开命令行工具,运行以下命令:```shellnpm install -g hexo-cli```2. 初始化Hexo:在命令行中,进入想要创建博客的目录,运行以下命令: ```shellhexo init myblog```3. 进入Hexo目录:运行以下命令:```shellcd myblog```4. 配置Hexo:打开 `_config.yml` 文件,编辑站点配置和个人信息等。
具体配置项请参考Hexo官方文档。
5. 创建文章:运行以下命令:hexo new "Hello World"```将会在 `_posts` 目录下创建一个新的Markdown文件。
6. 编辑文章:打开新创建的Markdown文件,使用Markdown语法编写文章内容。
7. 生成静态页面:运行以下命令:```shellhexo generate```将会把Markdown文件转换成静态网页,并生成到 `public`目录下。
8. 本地预览:运行以下命令:```shellhexo server```在浏览器中访问`http://localhost:4000` 可以预览生成的网页。
9. 部署博客:首先,在Hexo的配置文件`_config.yml` 中配置deploy选项,根据需要选择适合的部署方式(如Git、FTP等)。
运行以下命令进行部署:hexo deploy```部署成功后,博客网站将会发布到指定的服务器上。
这仅仅是Hexo的基本用法,Hexo还提供了很多其他功能和插件,可根据个人需求进行进一步配置和定制。
请参考Hexo官方文档获取更详细的信息。
hexo的url路径修改以及发布与修改时间
hexo默认url是年/⽉/⽇,这样其实不利于SEO。
hexo⽣成新⽂章命令,hexo new [layout] <title>,这个title最好是英⽂的,因为我们要把这个title放在url⾥,如何修改这个title呢?那就是去source⽂件夹⾥直接修改.md⽂件名即可。
但我们想让我们⽂章的标题显⽰中⽂的,这样如何修改呢?那就是在每篇⽂章的.md上⽅直接修改title为中⽂即可。
对于url的修改,可见下⾯的图⽚。
根⽬录的站点配置⽂件中,permalink写好路径,参数值去⽂章.md上⽅设置即可。
发布时间的修改,可以在⽂章.md的date直接定义,⽂章修改的时间,⽬前猜测是修改.md⽂件后系统会给⽂件写上该⽂件修改的时间,然后⽣成的。
补充,修改时间应该是⽂章.md⾥配置updated。
Hexo双语切换有英语版网站的需要,所以需要加一个双语切换功能,Hexo有对网站国际化的支持,即但存在缺陷,各种语言的文章会混杂在一起显得很混乱,需要稍加改造,步骤如下:安装插件安装Hexo国际化插件i18n,在博客根目录执行下列命令npm install hexo-generator-i18n##注意事项需要确保i18n插件位于根目录package.json中的所有插件的最后,每次安装新的插件时都要手动调整一次,因为每次安装新插件都会将插件按照字母顺序重新排列,目前没有发现好的方法,格式如下,注意最后一项没有逗号"dependencies": {"bookmark":"^0.2.3","clipboard":"^2.0.4","gitment":"0.0.3","hexo":"^3.8.0","hexo-asset-image":"0.0.3","hexo-deployer-git":"^1.0.0","hexo-generator-archive":"^0.1.5","hexo-generator-category":"^0.1.3","hexo-generator-index":"^0.2.1","hexo-generator-search":"^2.4.0","hexo-generator-sitemap":"^1.2.0","hexo-generator-tag":"^0.2.0","hexo-helper-live2d":"^3.1.1","hexo-prism-plugin":"^2.3.0","hexo-renderer-ejs":"^0.3.1","hexo-renderer-marked":"^0.3.2","hexo-renderer-stylus":"^0.3.3","hexo-server":"^0.3.3","hexo-symbols-count-time":"^0.4.4","hexo-wordcount":"^6.0.1","live2d-widget-model-tororo":"^1.0.5","live2d-widget-model-z16":"^1.0.5","hexo-generator-i18n":"0.0.7"}修改配置文件打开博客根目录中的配置文件_config.yml,在language栏作如下修改# language:# - zh-CN# - enlanguage: [zh-CN, en]i18n:type: [page, post]generator: [index, archive, categorie, tag]完成后执行hexo cl和hexo g二连重新生成public文件夹,此时会生成新目录/em用来存放英文站点文件,但此时不同语言的网站还是混合在一起的,需要添加生成条件让不同语言的页面出现在对的位置。
添加生成条件打开.\themes\next\layout\index.swig并在末尾添加如下代码{% block content %}<section id="posts"class="posts-expand">{%for post in page.posts %}{%if ng === ng %}{{ post_template.render(post, true) }}{% endif %}{% endfor %}</section>{% include '_partials/pagination.swig'%}{% endblock %}此时只有页面语言与文章完全一致时文章才会被生成,同理,在tag.swig、category.swig、archive.swig等文件中搜索设置post_template.render(post)判断条件即可隐藏其他语言的文章,示例如下:tag{%for post in page.posts %}{%if ng === ng %}{{ post_template.render(post) }}{% endif %}{% endfor %}archive{%if ng === ng %}{{ post_template.render(post) }}{% endif %}category{%for post in page.posts %}{%if ng === ng %}{{ post_template.render(post) }}{% endif %}{% endfor %}文章写作格式在博文标题栏加上lang:表示用来区分不同语言文章,中文为lang: zh-CN,英文为lang: en,示例如下:title: Hexo双语切换date: 2019-04-09 17:12:53lang: zh-CNtags: [HEXO]categories: Blog添加切换按钮打开Next主题配置文件.\themes\next\_config.yml并在Menu:下添加switch_lang:,示例如下menu:home: /|| homeabout: /about/|| usertags: /tags/|| tagscategories: /categories/|| tharchives: /archives/|| archiveswitch_lang: /en || language#schedule: /schedule/|| calendar#sitemap: /sitemap.xml || sitemap#commonweal: /404/|| heartbeat打开.\themes\next\languages下的zh-CN.yml和en.yml文件,分别在menu:下添加switch_lang:,示例如下zh-CNmenu:home: 首页archives: 归档categories: 分类tags: 标签switch_lang: Englishabout: 关于search: 搜索schedule: 日程表sitemap: 站点地图commonweal: 公益404enmenu:home: Homearchives: Archivescategories: Categoriestags: Tagsswitch_lang: zh-CNabout: Aboutsearch: Searchschedule: Schedulesitemap: Sitemapcommonweal: Commonweal 404添加判断条件此时链接仍然是单项可用的,只能跳转到英文页面但是不能跳转回中文页面,因此需要添加判断条件在.\themes\next\layout\_partials\head\head-unique.swig中添加以下代码,在加载完英文页面后将页面切换按钮重定向到中文<script type="text/javascript">// Wait for the page to load firstvar _prevOnload = window.onload;window.onload =function() {var switchLang = document.getElementsByClassName("menu-item menu-item-switch_lang")[0];switchLang.onclick =function() {var href = window.location.href;var indexOfEn = href.toLowerCase().indexOf('/en');if(indexOfEn !==-1) {window.location.href = href.replace('/en/', '/');}else {window.location.href =href.replace(/(^http[s]?:\/\/[a-z0-9.]*[:?0-9]*\/)(.*)/i, '$1en/$2');}if(typeof(_prevOnload) ==='function') {_prevOnload();}return false;}}</script>JavaScript萌新表示在这里卡了好久,document.getElementsByClassName返回的数值是数组,调试的时候一直报错,在后面加上了[0]才能返回Class的名称。