XPoet / hexo-theme-keep

:rainbow: A simple and light theme for Hexo. It makes you more focused on writing.
https://xpoet.cn
GNU Affero General Public License v3.0
1.32k stars 177 forks source link

希望有双语/多语言的功能 | an optional multi-languages feature support #337

Closed carrieeex closed 2 months ago

carrieeex commented 2 months ago

Issue Checklist | Issue 检查清单

Feature Request | 功能需求

我希望网站有双语/多语言功能。详见下方网站案例。

我在看Hexo/Redefine这个主题的时候发现的例子:支持中英文:他的第二人生,还有支持多语言:SaltyLeo's Blog

(截屏自以上两个网站)

Screenshot 2024-07-05 at 10 26 16 PM Screenshot 2024-07-05 at 10 26 48 PM

Other Information | 其它信息

可参考:

XPoet commented 2 months ago

Keep 主题支持中文简体、中文繁体,英文。

https://keep-docs.xpoet.cn/advanced/set-language.html

你需要先部署一套中文、英文的站点,然后把不同语言的站点链接配置到 menu 导航菜单里面。

示例:

menu:
  home: /                       # || fa-solid fa-home
  archives: /archives           # || fa-solid fa-box-archive
  tags: /tags                   # || fa-solid fa-tags
  # categories: /categories     # || fa-solid fa-layer-group
  links: /links                 # || fa-solid fa-link
  # photos: /photos             # || fa-solid fa-image
  tools: /tools                 # || fa-solid fa-tools
  about: /about                 # || fa-solid fa-user-graduate
  英文: https://xx.com/en || fa-solid fa-language # 英文站点
image
carrieeex commented 2 months ago

好的,谢谢。但是具体的我还是没太搞懂。。。(everything is new to me...

意思是不是:

  1. 我做两个独立的网站,需要两个repo,比如一个blog-zh和一个blog-en,完全一样(除了里面具体的文章)(然后因为我source和gh-page分开的 这样就要4个repo)
  2. 然后在各自里面hexo的_config.yml里面改language(en或者zh-CN)
  3. 然后各自的keep.yml里面menu加上eng: https://xx.github.io/blog-en || fa-solid fa-language # 英文站点中文: https://xx.com/blog-zh || fa-solid fa-language #

    如果我想用hexo的i18n实现双语,类似这种:

  4. 在Hexo的_config.yml里面写language,包括- en- zh-CN
  5. 改写permalink前缀,加上:lang/(类似这个
  6. 然后_posts里面也有enzh-CN的folder,source里面也有en, zh-CN的folder,类似这个

但是因为只有一个_data/keep.yml设置我的主页,我的中英文folder里的文章都会出现在主页里。我想知道有没有办法生成一个另一个语言的主页,这样我就不用多弄个repo了。。。

或者像这个,在主题的config里面加个选项啥的?

carrieeex commented 2 months ago

我现在做了两个独立的网站实现的双语,但是我还是希望以后可以在主题里面设置多语言选项,用一个repo完成所有的😄

XPoet commented 2 months ago

好的,谢谢。但是具体的我还是没太搞懂。。。(everything is new to me...

意思是不是:

  1. 我做两个独立的网站,需要两个repo,比如一个blog-zh和一个blog-en,完全一样(除了里面具体的文章)(然后因为我source和gh-page分开的 这样就要4个repo)
  2. 然后在各自里面hexo的_config.yml里面改language(en或者zh-CN)
  3. 然后各自的keep.yml里面menu加上eng: https://xx.github.io/blog-en || fa-solid fa-language # 英文站点中文: https://xx.com/blog-zh || fa-solid fa-language #

如果我想用hexo的i18n实现双语,类似这种:

  1. 在Hexo的_config.yml里面写language,包括- en- zh-CN
  2. 改写permalink前缀,加上:lang/(类似这个
  3. 然后_posts里面也有enzh-CN的folder,source里面也有en, zh-CN的folder,类似这个

但是因为只有一个_data/keep.yml设置我的主页,我的中英文folder里的文章都会出现在主页里。我想知道有没有办法生成一个另一个语言的主页,这样我就不用多弄个repo了。。。

或者像这个,在主题的config里面加个选项啥的?

Keep 主题暂为适配这种,后续加上

XPoet commented 2 months ago

我现在做了两个独立的网站实现的双语,但是我还是希望以后可以在主题里面设置多语言选项,用一个repo完成所有的😄

你完全先可以在一个仓库里面,用不同分支来管理 language 版本

carrieeex commented 2 months ago

我现在做了两个独立的网站实现的双语,但是我还是希望以后可以在主题里面设置多语言选项,用一个repo完成所有的😄

你完全先可以在一个仓库里面,用不同分支来管理 language 版本

!对哦,我怎么没想到😂 那生成网站的workflow呢?每个分支可以有自己的workflow吗难道?我用的是github的站点所以我公共repo的名字一个是我网站名username.github.io一个是cn,这样就分别和workflow里面的文件对应上了。但如果我用一个private source repo写分支的话,我的公共repo也可以只用一个然后用分支吗?还是要两个repo呢?