lmcintyre / OrchestrionPlugin

Simple BGM management plugin for XivLauncher
MIT License
20 stars 25 forks source link

Add Chinese translation for UI #39

Closed uiharuayako closed 10 months ago

uiharuayako commented 10 months ago

Some enthusiasts in the Chinese Dalamud community(Discord:@cyf2023) have added the Chinese language to the plugins. Additionally, we are working on localizing the song list, and currently, over 200 songs have been translated into Chinese. I'm not sure if it's feasible to add Chinese as an optional language to your Google spreadsheet for SongList, as it would require some code modifications.If you could modify the code to support a Chinese song list, it would be a significant help for us. If you could modify the code to support a Chinese song list, it would be a significant help for us.

It would be fantastic if you could add an option for users to freely choose the language for displaying the song list. Many Chinese users have provided feedback that they would like to be able to compare song names in Chinese, Japanese, and English.

If you find my Pull Request inconvenient to merge, you can download the 'zh.json' file from the submission, modify the code according to your preferences, and complete the Chinese translation in the way you envision. You can close my Pull Request at any time.

Thank you and the other developers for providing such helpful plugins to the Dalamud community.

lmcintyre commented 10 months ago

Hello @uiharuayako! Sorry I did not get back to you sooner. I have been working on other projects and busy with life and such.

I have used the zh.json file that you have provided and uploaded it to the OrchestrionPlugin Crowdin project here: https://crowdin.com/project/orchestrionplugin This allows me to manage and update the localization easier than manually collecting json files for each language. I really appreciate your translations.

For the song list, I was originally planning on adding a Chinese song list sheet, but I had removed it from my prototype as the Chinese game client was always going to be slightly out of date with regards to the song list. I'd like to add it back after considering how supportive the CN community has been towards the Orchestrion Plugin. I will do my best to make it work.

lmcintyre commented 10 months ago

If you already have a number of translations done for the zh song list, please link me to the sheet if possible. I will add the required code modifications and then copy the zh sheet over when the translation is finished, as that is the easiest method to add many translations to the Google sheet.

uiharuayako commented 10 months ago

With the help of enthusiasts, we've nearly completed the translation of the song list. Here's the link Google Sheet , and you can find our translation content in the 'zh' worksheet. We've also added information about how to obtain sheet music for each song available in the game, but this part is in Chinese only, as accessing English wiki resources has been less convenient for us.

uiharuayako commented 10 months ago

We've noticed that some strings on the settings page don't appear to be included in the localization JSON file. Here are some additional translations. These strings are from theSettingsWindow.cs file. If you could add these strings to the Crowdin string list, I can later supplement them with Chinese translations. Thank you very much.


  "ShowSongTitleBar": {
    "message": "在播放器标题栏显示当前播放的乐谱",
    "description": "BGMManager.PlayRandomSong"
  },
  "ShowNowPlayingChat": {
    "message": "在当前播放的乐谱更换时,在消息窗口发送一条提示",
    "description": "BGMManager.PlayRandomSong"
  },
  "ShowSongServerInfo": {
    "message": "在服务器信息栏显示当前播放的乐谱",
    "description": "BGMManager.PlayRandomSong"
  },
  "ShowSongIdServerInfo": {
    "message": "在服务器信息栏显示当前播放乐谱的ID",
    "description": "BGMManager.PlayRandomSong"
  },
  "HandleSpecialModes": {
    "message": "显示战斗音乐与坐骑音乐的乐谱",
    "description": "BGMManager.PlayRandomSong"
  },
  "ShowAltLangTitles": {
    "message": "在提示中显示相应语言的乐谱名称",
    "description": "BGMManager.PlayRandomSong"
  },
  "UseClientLangInServerInfo": {
    "message": "为服务器信息栏的乐谱名称使用客户端语言,而非卫月语言",
    "description": "BGMManager.PlayRandomSong"
  },
  "UseClientLangInChat": {
    "message": "为 Orchestrion 发送到消息窗口的乐谱名称使用客户端语言,而非卫月语言",
    "description": "BGMManager.PlayRandomSong"
  },
  "ShowMiniPlayer": {
    "message": "显示迷你播放器界面",
    "description": "BGMManager.PlayRandomSong"
  },
  "LockMiniPlayer": {
    "message": "锁定迷你播放器界面",
    "description": "BGMManager.PlayRandomSong"
  }
uiharuayako commented 10 months ago

Some users may want to set Dalamud to Chinese while viewing the song list in Japanese. Therefore, I have added a language switching feature for the song list in the settings interface. However, my implementation may be somewhat rudimentary. I would greatly appreciate it if you could find a better way to implement this feature. Here is my implementation: https://github.com/uiharuayako/OrchestrionPlugin/commit/1e01ae91565d782ff01d4b7d384d6271ef5c2b2e. I hope you can consider adding this feature, as it would be a great help to Chinese users.

lmcintyre commented 10 months ago

Thanks for all your help and feedback. I have updated the Google Sheet and the localization file accordingly. I'll work on getting a build available to incorporate the changes you've made and suggestions you've added. Again, thank you!