-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Localization zh HK
ASF ็ฑ Crowdin ๆๅๆไพๆฏๆด๏ผ้ไฝฟๅพๆฏๅไบบ้ฝๅฏไปฅๅนซๅฉๅฐ ASF ็ฟป่ญฏๆไธ็ๅๅฐ็่ช่จใ ๆ้ Crowdin ๅทฅไฝๅ็็่ฉณ็ดฐ่ชชๆ๏ผ่ซๆฅ็ Crowdin ไป็ดนใ
ๅฆๆๆจๆณไบ่งฃ็ถๅๆฌๅๅๅทฅไฝ็้ฒ็จ๏ผๅฏไปฅ้ๆณจ ASF Crowdin ๅๆ ใ
ๆๅ็ๅนณ่บๆฏๆดๆๅ็ไธป่ฆ ASF้ ็ฎ็็ถๅฐ่ช็ณปๅ๏ผไปฅๅๆๅ่ไนไธ่ตทๆไพ็ๅฎๆด็ๅฏ็ถๅฐ่ช็ณปๅๅ งๅฎนใ ้ไธป่ฆๅ ๆฌๆๅ็ASF็ถฒ้ ่จญ็ฝฎๆช็ๆๅจใASF-ui ไปฅๅๆๅ็wikiใ ๆๆ้ไบ้ฝๅฏไปฅ่ผ้ฌๅฐ้้Crowdinไป้ข้ฒ่ก่ฝๆใ
ๅฆๆๆจๆณๅนซๅฉๅฐASF็็ฟป่ญฏใๅฏฉ้ฑๆๆนๅ็ฟป่ญฏ๏ผ่ซ่จปๅๆๅ็ Crowdin ้ ็ฎใ ่จปๅๆฏ็ฐกๅฎๅๅฎๅ จๅ ่ฒป็๏ผ ็ป้ๅพ๏ผๆจๅฏไปฅ้ธๆๆจๆณๅ่็ฟป่ญฏ็่ช่จ๏ผ็ถๅพ้ๅง็ฟป่ญฏ ASF ๅญไธฒ๏ผไธฆๅๅฉๅ ถไป็คพๅๆๅกๅฐ ASF ็ฟป่ญฏๆๆๆ็ถไธๆๆต่ก็่ช่จ๏ผ
ๅฆๆๆจ้ธๆ็่ช่จไป็ถ็ผบๅฐไธไบๅญไธฒ๏ผๆจๅฏไปฅ้ธๅๅฎๅไธฆ้ๅง็ฟป่ญฏใ We tried to do our best in terms of flexibility of the translations, therefore many strings include extra variables that ASF will provide during runtime - those are enclosed in brackets with a number, such as {0}
. ้ๆจฃ๏ผๆจๅฐฑๅฏไปฅๆดๆนASFไธญๅญไธฒ็้ ่จญๆ ผๅผ๏ผไพๅฆๅฐASFๆไพ็่ฎๆธ็งปๅๅฐๆด็ฌฆๅๆจ็่ชๆณๅ็ฟป่ญฏ็ฟๆ
ฃ็ไฝ็ฝฎ๏ผ่ไธๆฏ่ขซ่ฟซๅดๆ ผdiโwๆฒฟ็จๅๆๆ ผๅผใ ้ๅจ RTL ่ช่จ๏ผๅฆๅธไผฏไพๆ๏ผไธญๅฐคๅ
ถ้่ฆใ
ไพๅฆ๏ผๆจๅฏไปฅๆไธๅ้ๆจฃ็ๅญไธฒ๏ผ
We have {0} games to farm.
ไฝๅจไฝ ็่ช่จ็ฟๆ ฃไธญ๏ผไธ้ข็ๅฅๅญๅฏ่ฝๆดๆฐ็ถ๏ผ
The number of games to farm is equal to {0}.
ๆ๏ผ
{0} is the number of games to farm.
The flexibility is provided specially for you, so you can slightly reword ASF sentence to fit your language better and move ASF-provided number or other information in a place that fits your translation (instead of translating each part independently). ้ๆ้ซไบๆด้ซ็ฟป่ญฏๅ่ณชใ
ๅฆๆๆจ้ธๅ็ๅญไธฒๅทฒ็ฑๅ ถไปไบบ็ฟป่ญฏ๏ผๆจๅฏไปฅๆ็ฅจไปฅ่ดๆๆๅๅฐใ ๆ็ฅจๅฏไปฅ้ธๆๆไฝณ็็ฟป่ญฏ๏ผ่ไธๆฏๅ ๆๆๅ็ๅปบ่ญฐโโ้้ฒไธๆญฅๆ้ซไบๆด้ซ็ฟป่ญฏๅ่ณชใ ไฝ ๅฏไปฅ็บๅทฒ็ถๅฏไปฅๆไบค็็ฟป่ญฏๅปบ่ญฐๆ็ฅจ๏ผไนๅฏไปฅๆไบค่ชๅทฑ็็ฟป่ญฏๅปบ่ญฐ๏ผ้ๅฐ็ถๆญทๅๆจฃ็้็จใ Eventually, final string will be chosen either based on most voted suggestion, or as a choice of proofreader selected for that language who personally approves given translation (based on your votes as well).
ๆจๅทฒ็ฟป่ญฏ็ๅญไธฒไธ้ๆนๅๅณๅฏๅจASFไธญๆฅ็ใ ๆนๅๅชๆฏๆๅณ่ๆๅผๅพๆๅไฟกไปป็ไบบๅฃซๅฏฉๆฅไบ็ฟป่ญฏๅ งๅฎน๏ผไธฆ้ธๆไบ็ฟป่ญฏ็ๆ็ต็ๆฌใ It's totally fine to have not-approved community-driven translations, where you vote for the best one. ๅช่ฆ็ฟป่ญฏๅฎๆ๏ผ่ฌไบๅคงๅ๏ผ ๅฆๆๆจ่ช็บ็พๅจ็็ฟป่ญฏไธๅฅฝ๏ผๆจ็ธฝๆฏๅฏไปฅ็บๆจๆดๆฌฃ่ณ็็ฟป่ญฏๆ็ฅจ๏ผๆ่ ่ชๅทฑๆไบคไธๅใ
It's a good idea to have a consistent translation, even if it could potentially take freedom from community review/voting process explained above. This is mainly because incorrect translations that are not necessarily bad may get so many upvotes that it's no longer possible to suggest any better translation, even if somebody has such.
If you have past history of contributions on Crowdin or any other localization platform/service that we can verify and assume trustworthy, we're happy to give you a proof-reader access to given language you're contributing to, so you'll be able to approve given translation and make it consistent. ๆ กๅฐไธๆฏไธไปถๅฎนๆ็ไบๆ ๏ผ็นๅฅๆฏๅ ็บASFๆๆๆ้ๅธธใๆ่กๆงใไธ้ฃไปฅ็ฟป่ญฏ๏ผไฝๆๅๆ็ฝ๏ผๅฎ้ๅธธๆฏๅฎ็พ็ฟป่ญฏๆๅฟ ้็ใ Therefore if you can help by proof-reading given language, let us know, but keep in mind that you'll need to back up your request with past localization contributions that we can verify (e.g. working with ASF localization on Crowdin, or with any other project). We may also allow more advanced users to pick up initial proof-reading, if we know them personally and they're capable of cooperating with the rest of the community in order to localize ASF in that language best.
้ฉ็จไบๆ กๅฐ็ไธ่ฌ่ฆๅโโไธ่ฆๅฟๆฅ๏ผๅพ่ฝ็จๆถ็่ฒ้ณ๏ผ็ตฑ็ฑ้ ็ฎ๏ผ่งฃๆฑบๅ้ก๏ผ็ขบไฟๆไบๆ ๅๅพๆดๅฅฝ๏ผ่ไธๆฏๆด็ณใ
If you have a problem with particular translation, e.g. you do not know how to translate it, approved translation is incorrect, you need more specific context, or likewise, please post a comment under specific string, and mark it with [X] Issue.
Please avoid using issue mark if you do not need technical/development explanation or admin action. You're free to use comments for discussion related to translation of given string, but issue should be used only when you need further technical explanation or admin correction, and it will typically involve somebody who does not even speak the language you're translating to, so please stick with English when writing issue comment (so we can understand what the issue is).
็ถๅๆๅๅฐไปฅไธ4้กๅ้กๆไพๆฏๆด๏ผ
- ไธ่ฌๅ้กโโไปปไฝไธ็ฌฆๅไธ้ขไปปไฝๆจๆบ็ๅ้กใ In general this type should be avoided, as if your problem does not fit, then it's very likely not a translation issue. Still, this option is available here for all other cases.
- Current translation is wrong - this should be used only if translation was pre-approved by proof-reader already, and you believe that it's wrong, for example it has a typo or you have a valid suggestion how to improve it. This type should never be used in translations that are powered by the community (voting), as in this case you should contact with user of given translation and ask him for correction, or simply vote for better translation, as stated in reviewing section. We'll remove the approval of the translation and notify the appropriate proof-reader in charge of the language to take into account your comment and verify again.
- Lack of contextual information - this is what you should use if you're not sure what part of ASF you're translating, what is the context of given string, or its purpose. This type should be used for ASF development only, it means you need technical assistance as you're not sure how you should translate given string.
- Mistake in the source string - this should be used only if you believe that original (English) string is incorrect. Quite rare, but not all of us are speaking English natively either, so feel free to use it if you have a general idea how it could be improved. Alternatively, since this is strictly related to the development, you may use our GitHub issues for that purpose, if you'd like to.
ๆฏ็จฎ่ช่จ้ฝๆๅ ฉ็จฎๅฎๆ็ๆ โโ็ฟป่ญฏๅๆ กๅฐใ
Language is considered translated when its translation progress reaches 100%. At this point every localizable string used by ASF has proper meaning, which is great. However, that doesn't mean that there is no room for improvement - community voting is enabled all the time and you can still suggest better translation for already-translated parts, as well as vote for existing ones. Please note that fully-translated languages can still drop below 100% when we change existing strings or add new ones during development. You can set up appropriate crowdin notifications if you'd like to receive e-mail when this happens.
Selected languages may have appropriate proof-readers that validate translations and approve final versions. This is final pass after translation takes place and allows to further improve localization.
ASF will include given language as soon as possible, which means that it doesn't need to be approved, or even 100% translated. The actual strings that will be used are always the most popular ones in terms of the votes, unless chosen proofreader decided otherwise (rarely). Therefore, you can see your efforts being included in the very next ASF release - our automation systems merge translations from Crowdin back to ASF repo on daily basis.
By default ASF project has open translation only for top 30 languages that are spoken worldwide. If you'd like to add another one (or a local dialect to already available one), please let us know and we'll add it ASAP. We don't want to open several hundred different languages if nobody is going to translate them, that's why we limited it to some fair number. Please don't hesitate to contact us if you'd like to translate some not-listed language, it's very easy for us to add another one. Just make sure that you have actual willings and determination to translate ASF into your language, before you decide to contact with us.
For a complete list of all available languages that ASF can be translated to, click here.
Every language has its own rules in regards to pluralization. Those rules can be found on CLDR which specifies their number and exact language conditions.
We're doing our best to offer you flexible localization, and as long as possible, this will also include plural rules. For example, we'll translate following string into Polish today:
Released {PLURAL:n|{n} month|{n} months} ago
PLURAL
keyword here is treated in a special way as it allows you to include all plural forms that your language supports. If you take a look at CLDR, you'll see that in English there are only 2 cardinal forms - "one", and "other". And as you can see above, we have both of those defined - {n} month
and {n} months
.
However, our Polish language actually includes 4 of them - "one", "few", "many" and "other". This means that we should define all of them for completion. Our localization tools are already smart enough to pick appropriate plural form based on language rules, therefore you only have to define all of them in the translation:
Wydany {PLURAL:n|{n} miesiฤ c|{n} miesiฤ ce|{n} miesiฤcy|{n} miesiฤ ca} temu
This way we've defined all 4 plural forms for our Polish language, and since our localization library already knows the exact rules, it'll properly use the correct form for provided {n}
number.
It's not mandatory to define all plural forms used by your language. If missing, our localization library will use last defined form in its place. It's a good idea to define all plural forms used by your language, but in some cases remaining plural forms could be the same as last one, in which case it's not needed to repeat them. In our example above it was mandatory, as "other" form in Polish for months is "miesiฤ ca", and not "miesiฤcy" as in "many".
Our crowdin platform also allows you to localize even the wiki itself. This is a very powerful tool, since it allows you to create a whole ASF documentation in your native language, effectively solving the very last issue when it comes to ASF localization. Together with translation of the program and all its parts, this makes localization complete.
Wiki is a bit special in this regard, since it's online help where you don't need to stick with original sentence too much. This means that you want to be as natural with your language as possible, and deliver original meaning and help - not necessarily stick with original string, used words and actual punctuation. Don't be afraid of rewriting the string into something far more natural for your language, as long as you keep the general direction and help included in the sentence.
Our crowdin platform also allows you to adapt the original text in order to make it point to new (localized) locations.
ASF includes links on almost every page for easier navigation, as well as sidebar on the right. The awesome fact is that you can edit all of that, "fixing" links to point to proper localized pages for your language. It requires to be a bit careful doing that, but it's possible.
For example, ASF home page includes a text such as:
ๅฆๆๆจๆฏๆฐ็จๆถ๏ผๆๅๅปบ่ญฐๆจๅพ**่จญ็ฝฎๆๅ**้ๅงใ
Which is originally written as:
If you're a new user, we recommend starting with **[setting up](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Setting-up)** guide.
On the crowdin, first thing you should do is going to your editor settings and ensuring that HTML tags are set to "Show" for you. This is very important if you decide to localize the wiki.
Now, during translating on the crowdin, depending on formatting, you'll see ASF links in the text either as:
- String to translate together with HTML tags (majority of strings, where only a part of the sentence is a link)
- Alone string to translate, with link included in
Hidden texts
->Link addresses
(rare, where entire string is a link, most common in sidebar - those require proofreader access to translate, sadly)
In our example above, it's the first case (since only "setting up" is a link), so in crowdin we'll see it as:
Regardless of case, firstly you should copy the source string and translate it as usual, leaving entire HTML (if present) intact. This would be example of translation for Polish language:
Now, if the link is a generic link that points outside of the wiki (e.g. to latest ASF release), you can leave it as it is since you don't want to edit it. You can save it and move forward.
However, if the link does point further inside the wiki, like the one above, you can actually correct it to point to new (localized) location. You do this by carefully appending -locale
to target URL in <a>
tag, like below:
Be extremely careful about this, and ensure that your URL indeed exists, since if you make a mistake, that link will stop functioning. If you succeeded, you now have a fully functional translation with link pointing to translated (in our case Setting-up-pl-PL
) page.
Doing the steps above will properly translate our HTML back to markdown:
Jeลli jesteล nowym uลผytkownikiem, zalecamy rozpoczฤcie od korzystania z **[przewodnika po konfiguracji](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Setting-up-pl-PL)**.
And finally into wiki text:
Jeลli jesteล nowym uลผytkownikiem, zalecamy rozpoczฤcie od korzystania z przewodnika po konfiguracji.
When no HTML is present (second case), this is even easier since you can just go to Hidden texts
-> Link addresses
.
From there you can easily correct the link to point to new location, without even bothering with HTML at all:
Across the wiki you will also find local links that point to particular section of the document. Those links include #
character, indicating the web browser that it should move towards that section of the document.
Now those are special cases, since those links are based on names of the sections of current document. While for URLs we have general convention of adding -locale
to the URL, and it works everywhere, section names will be translated by you and other people, so you need to ensure that they point to proper location.
For example you can find #introduction
link in our configuration section:
Since we're going to translate "Introduction" word into "Wprowadzenie" for our Polish language, we'll need to correct this link since it'll stop functioning the moment we do this.
This way our local link will keep working, since it'll now point to name of the section that we're using. You can correct links inside HTML tags in exactly the same way.
Be extremely careful when you translate sentences with <code></code>
blocks inside. Code block indicates fixed ASF code names or terms that should not be translated. ็ฏไพ๏ผ
This is especially useful if you have a lot of keys to redeem and you're guaranteed to hit
RateLimited
status before you're done with your entire batch.
As you can see, RateLimited
word here is inside a code block and indicates internal ASF code status that should not be translated. Likewise, you shouldn't translate other code blocks, such as names of config properties (e.g. TradingPreferences
), enum members (e.g. Stable
and PreRelease
options of UpdateChannel
) and likewise.
However, just because those words should not be translated, doesn't mean that you can't add appropriate translation next to them, for example in brackets.
Ta funkcja jest wyjฤ tkowo uลผyteczna w przypadku aktywacji duลผej iloลci kluczy i gwarancji napotkania statusu
RateLimited
(zbyt czฤstej aktywacji) przed ukoลczeniem caลej partii.
As you can see above, we've added "zbyt czฤstej aktywacji", literally "too often activation" next to RateLimited
in order to translate that status in a friendly way, while at the same time keeping original ASF meaning that the user may see during usage of the program. In the same way you can translate/explain other, similar cases of various words and sentences.
If you believe that something inappropriate is included in a code block, or that there is a text that is not in a code block but should be inside it, feel free to ask on our crowdin by creating appropriate issue. This also serves as a practical example of using a local link.
We'd like to show our eternal gratitude to people that have spent a significant amount of their time and willings to make ASF localization better. Their effort is incredible, and you can enjoy complete translations, including the wiki, mostly thanks to them. As a token of appreciation, all people listed here are offered free access to MatchActively
feature upon a request.
Contributor | Languages |
---|---|
Astaroth | LOLCAT, Spanish |
Dead_Sam | Portuguese (BR) |
deluxghost | Chinese (CN) |
DragonTaki | Chinese (TW) |
LittleFreak | German |
Ryzhehvost | Russian, Ukrainian |
MrBurrBurr | LOLCAT, German |
XinxingChen | Chinese (HK) |
Thank you all for improving our ASF localization quality!
- ๐ก Home
- ๐ง Configuration
- ๐ฌ FAQ
- โ๏ธ Setting up (start here)
- ๐ฅ ๅพๅฐๅบ่ๅๅๅจ
- ๐ข Commands
- ๐ ๏ธ Compatibility
- ๐งฉ ItemsMatcherPlugin
- ๐ Management
- โฑ๏ธ Performance
- ๐ก Remote communication
- ๐ช Steam ่ฆชๅๅไบซ
- ๐ Trading