Hi everyone,

Thank you all so much for the work you've done on the translations so far! We've got a fair number of translations done already, we hope that those of you with completed translations are enjoying playing with the app in your own language.

We're going to make a couple of changes going forward. We're aware of a few issues with our processes and permissions so far - those of you with the 'translator' role can't edit strings that have been approved, even if users have flagged the translations, whereas reviewers have too many permissions and can approve translations. So we're scrapping those roles and replacing them with language-based roles so you can make all changes to your own language. We still want to keep the same policy we had before - all translations should go through two people - so please don't approve your own work! These changes will be rolled out over the next few days.

The second change is more proactive. Even as languages are completed, there will always be more to do. The app is consistently being updated and we're within sight of a release of the new Script Tool, both of which will require further translations, so this is an ongoing project, and we anticipate a drop-off in interest from some of you after the initial translation is done. Also, I've been getting a lot of questions about translations that I can't answer because I don't speak the language, and I'm aware of cases where two camps have formed around competing translations that end up inconsistent in the final translation (Dutch spreukenboek vs grimoire debate, I'm looking at you!). We're going to try to solve both of these problems with the introduction of a "translation coordinator" role to several languages which have a large number of volunteers and are complete or nearing completion. Coordinators will work with me, will have the power to reject suggestions, and will be the deciding voice on any issues that come up. Ideally coordinators will be native or native level in the language and at least fluent in English. I'm also aware that a good number of you have some experience with professional translation; that'd be great, but is by no means necessary. We'll also consider others' recommendations, so if you think you know someone who'd be a good person to lead the translation, or you want to volunteer, reach out to me at alejo@thepandemoniuminstitute.com.

-Alejo

Summary

Project website botc.app
Instructions for translators

This is the translation repository for the official Blood on the Clocktower app and accompanying game materials. English is the base language for the app and any currently untranslated text (both from app and game) will fall back to the English version in the app. Outdated translations will be marked as such in the translation interface. Whenever the app is updated, the most recent translations will be pulled from here and used in the app. The translations are split into 3 parts:

  • Glossary: this contains the general game terms that are being used across the app and game materials. It is (currently) not shown anywhere in the app, but being used to help translators use the same terms for important elements of the game.
  • Game Content: the actual game content that is also being used in the the printed board game. It consists of Edition descriptions, Character text, Reminder text (reminders are shared between different characters) and Jinxes. This content should rarely change and be stable, once translated.
  • App Interface: all interface text that is being used in the app. These will be updated as the app is undergoing further development, so expect frequent changes here and check back frequently.

How to translate

Select the component you want to translate and the language, if it's already been added. Languages that are officially translated (meaning there is a printed version of the game available in this language) require the "official translator" role for updating the game translation. Fan translators can update all game translations for unofficial languages and all app interface translations for all languages, except English. The translations need to follow a few important rules in order to be usable on the app:

  • General: Some translations contain line breaks (\n) and / or tab spaces (\t). These are used for visual formatting and it's recommended to use them appropriately in the translated text as well. Otherwise, the translated version might look weird in the app.
  • Game Content: Night reminder text (roles.[role].first and roles.[role].other) sometimes contain :reminder:as a placeholder for a Reminder token icon. DO NOT TRANSLATE this placeholder! Example: The Butler chooses a player. :reminder: -> Der Butler wählt einen Spieler. :reminder:
  • Game Content: Night reminder text (roles.[role].first and roles.[role].other) sometimes contain *SOMETHING* to mark text as bold. Translate the text, but keep the asterisks in place! Example: Show the Townsfolk character token. Point to both the *TOWNSFOLK* and *WRONG* players. -> Zeige das Bürger-Plättchen. Zeige auf den *BÜRGER* und auf den *FALSCH*en Spieler.
  • App Interface: Curly braces placeholders are being used throughout the app text and are either numbered ({0}, {1}, ...) or named ({link}). DO NOT TRANSLATE these placeholders! They are being used to insert formatting, HTML elements or dynamic information in their place. Example: Seat {0} -> Sitz {0}, Download the latest {label} version here. -> Lade die neueste {label} Version hier runter.
  • App Interface: Pluralized strings are defined with a vertical bar between each form of the string. The first form is singular, the second form is plural. Keep the vertical bar in place, but translate each form accordingly. If your language has a different form for zero and multiple, the correct form is zero something|one something|many something. Example: Demon|Demons -> Dämon|Dämonen, First Day|Day {n} -> Erster Tag|Tag {n} (pluralized strings might also contain curly braced placeholders)
Project maintainers3 User avatar AlejoFBlackUser avatar oddGarrettUser avatar bra1n
Project reviewers94 User avatar ChiromyiformeUser avatar coolseelUser avatar oddGarrettUser avatar Augurey2012User avatar bra1nUser avatar just_anaUser avatar EardstapaArcticaUser avatar MalleUser avatar lostmorningUser avatar testerUser avatar TakiUser avatar Some_Random_PersonUser avatar FabulistUser avatar crysarcherUser avatar TalloreteUser avatar tberbenUser avatar OVOOLIFEUser avatar HobbeUser avatar AsdepiqueUser avatar serega6531User avatar rynnethiaUser avatar HerdisUser avatar hidewariUser avatar cupnoodleUser avatar Gavilan
8 minutes ago

String statistics

Strings percent Hosted strings Words percent Hosted words Characters percent Hosted characters
Total 107,315 944,069 5,346,561
Source 1,923 16,866 95,538
Approved 17% 19,020 12% 120,885 13% 695,460
Waiting for review 16% 17,083 14% 132,766 14% 756,795
Translated 35% 38,026 28% 270,517 28% 1,547,793
Needs editing 1% 316 1% 3,163 1% 17,863
Read-only 1% 1,923 1% 16,866 1% 95,538
Failing checks 1% 418 1% 3,832 1% 21,691
Strings with suggestions 3% 3,831 3% 31,008 3% 177,651
Untranslated strings 64% 68,973 71% 670,389 70% 3,780,905

Quick numbers

944 k
Hosted words
107 k
Hosted strings
34%
Translated
3
Components
56
Languages
168
Translations
5
Screenshots
and previous 30 days

Trends of last 30 days

+96%
Hosted words
+100%
+96%
Hosted strings
+100%
−65%
Translated
+99%
+99%
Contributors
+100%
Language Approved Translated Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
English 100% 100% 0 0 0 0 164 0 5
Afrikaans 0% 9% 1,740 16,143 91,164 1,740 0 66 0
Alemannic 0% 0% 1,916 16,858 95,471 1,916 0 0 0
Azerbaijani 0% 0% 1,916 16,858 95,471 1,916 0 25 0
Bengali 0% 0% 1,916 16,858 95,471 1,916 0 0 0
Bulgarian 0% 0% 1,916 16,858 95,471 1,916 0 2 0
Chinese (Simplified Han script) 99% 99% 1 1 4 1 0 1 0
Czech 47% 47% 1,005 12,825 71,680 1,005 0 534 0
Danish 46% 99% 8 17 94 4 27 79 17
Dutch 54% 99% 8 154 885 3 62 143 56
English (Pirate) 20% 48% 983 11,368 63,381 979 39 42 13
Filipino 0% 1% 1,898 16,636 94,223 1,898 0 0 0
Finnish 3% 26% 1,414 14,278 80,882 1,380 3 86 2
French 44% 47% 1,005 12,825 71,680 1,005 0 215 44
French (Canada) 1% 2% 1,875 16,801 95,148 1,875 0 147 0
Georgian 0% 6% 1,782 15,814 89,382 1,782 0 0 0
German 76% 76% 451 6,489 36,408 451 54 275 0
German (Austria) 0% 0% 1,916 16,858 95,471 1,916 0 0 0
German (Switzerland) 0% 53% 883 11,306 62,990 880 16 3 0
Greek 0% 10% 1,719 16,073 90,774 1,719 0 0 1
Hebrew 9% 56% 830 11,206 62,435 805 3 186 2
Hindi 0% 9% 1,742 16,557 93,531 1,721 1 0 0
Hungarian 0% 0% 1,916 16,858 95,471 1,916 0 0 0
Icelandic 0% 1% 1,894 16,821 95,238 1,894 0 1 0
Indonesian 0% 2% 1,870 16,739 94,742 1,870 2 0 0
Italian 47% 0 0 0 0 0 16 2
Japanese 1% 5% 1,809 16,586 93,757 1,808 2 2 0
Karelian 0% 1% 1,915 16,855 95,456 1,915 0 0 0
Klingon 0% 10% 1,708 15,463 87,333 1,708 0 0 0
Korean 30% 30% 1,337 14,336 80,445 1,337 0 0 0
Latin 0% 0% 1,916 16,858 95,471 1,915 1 0 0
Lithuanian 0% 14% 1,634 15,678 88,635 1,634 0 131 0
Norwegian Bokmål 22% 66% 649 11,450 63,691 603 17 52 9
Persian 0% 1% 1,908 16,748 94,868 1,908 0 0 0
Polish 11% 85% 271 1,189 6,997 252 14 190 44
Portuguese (Brazil) 47% 47% 1,005 12,825 71,680 1,005 0 112 16
Portuguese (Portugal) 9% 73% 508 2,215 12,984 508 0 0 0
Romanian 9% 26% 1,415 14,683 82,584 1,415 0 0 0
Russian 39% 47% 1,012 12,844 71,790 1,005 1 737 65
Sami 0% 0% 1,916 16,858 95,471 1,916 0 0 0
Sami (Northern) 0% 1% 1,881 16,813 95,225 1,881 0 0 0
Serbian 0% 9% 1,728 16,190 91,423 1,726 2 11 0
Slovak 0% 73% 499 9,929 54,870 499 0 4 5
Slovenian 4% 38% 1,169 13,258 74,194 1,169 3 0 5
Spanish 47% 47% 1,005 12,825 71,680 1,005 0 428 21
Spanish (Latin America) 99% 0 0 0 0 0 14 0
Spanish (Mexico) 0% 45% 1,043 9,305 52,242 1,042 1 0 11
Spanish (Peru) 0% 0% 1,916 16,858 95,471 1,916 0 0 0
Swedish 0 0 0 0 0 68 0
Thai 44% 60% 764 6,669 37,515 762 0 0 0
Toki Pona 0% 24% 1,454 13,941 78,878 1,448 2 4 48
Turkish 36% 37% 1,197 11,977 67,712 1,063 2 179 13
Ukrainian 2% 37% 1,190 14,276 79,951 1,189 2 78 14
Vietnamese 34% 99% 4 6 36 4 0 0 3
Viossa 0% 0% 1,916 16,858 95,471 1,916 0 0 0
Yiddish 0% 0% 1,916 16,858 95,471 1,916 0 0 0
User avatar DrewScroll

Translation changed

8 minutes ago
User avatar DrewScroll

Translation added

8 minutes ago
User avatar DrewScroll

Translation added

9 minutes ago
User avatar DrewScroll

Translation added

9 minutes ago
User avatar DrewScroll

Translation added

11 minutes ago
User avatar DrewScroll

Translation changed

11 minutes ago
User avatar DrewScroll

Translation added

11 minutes ago
User avatar DrewScroll

Translation added

11 minutes ago
User avatar DrewScroll

Translation added

12 minutes ago
User avatar DrewScroll

Translation added

12 minutes ago
Browse all project changes
User avatar AlejoFBlack

Announcement posted

Hi everyone,

Thank you all so much for the work you've done on the translations so far! We've got a fair number of translations done already, we hope that those of you with completed translations are enjoying playing with the app in your own language.

We're going to make a couple of changes going forward. We're aware of a few issues with our processes and permissions so far - those of you with the 'translator' role can't edit strings that have been approved, even if users have flagged the translations, whereas reviewers have too many permissions and can approve translations. So we're scrapping those roles and replacing them with language-based roles so you can make all changes to your own language. We still want to keep the same policy we had before - all translations should go through two people - so please don't approve your own work! These changes will be rolled out over the next few days.

The second change is more proactive. Even as languages are completed, there will always be more to do. The app is consistently being updated and we're within sight of a release of the new Script Tool, both of which will require further translations, so this is an ongoing project, and we anticipate a drop-off in interest from some of you after the initial translation is done. Also, I've been getting a lot of questions about translations that I can't answer because I don't speak the language, and I'm aware of cases where two camps have formed around competing translations that end up inconsistent in the final translation (Dutch spreukenboek vs grimoire debate, I'm looking at you!). We're going to try to solve both of these problems with the introduction of a "translation coordinator" role to several languages which have a large number of volunteers and are complete or nearing completion. Coordinators will work with me, will have the power to reject suggestions, and will be the deciding voice on any issues that come up. Ideally coordinators will be native or native level in the language and at least fluent in English. I'm also aware that a good number of you have some experience with professional translation; that'd be great, but is by no means necessary. We'll also consider others' recommendations, so if you think you know someone who'd be a good person to lead the translation, or you want to volunteer, reach out to me at alejo@thepandemoniuminstitute.com.

-Alejo

2 hours ago
User avatar bra1n

Announcement posted

Good news, everyone!

We've reverted all the accidentally deleted strings and put the first 9 languages of the App Interface translations live! We wanted to include a few that were already translated completely in order to show off the new language support on the app, so the following languages are now available on botc.app: Danish, German, Spanish, Spanish (Latin America), Italian, Dutch, Portuguese (Brazil), Russian and Swedish

That doesn't mean these languages can't be improved anymore! Matter of fact, now that they're out on the app, we're likely going to receive a lot more feedback and suggestions for them. As such, please keep improving them and we'll regularly synchronize any changes made into the official app. Approved strings can currently only be changed by a reviewer, so if you would like to change teams, let us know and we're happy to give everyone the right permissions to continue working on their translations.

Thanks again for being so awesome!

bra1n

12 days ago
User avatar bra1n

Announcement posted

Hey everyone,

we're currently facing a serious issue that has caused quite a few submitted translations to be reverted. Fret not, those translations are not lost, they can be easily fixed: You can find all the currently "lost" translations here: https://translation.botc.app/checks/translated/botc-app/app-interface/ (simply click on your language) Weblate will automatically suggest a fix for them in the top right corner, simply click that button and hit "Save". Apologies for the extra work, we'll also slowly go through these and revert the deletions where applicable.

Regards, bra1n

2 weeks ago
User avatar bra1n

Announcement posted

Hej Danish translators,

it looks like Weblate kept eating your submitted translations for some reason, whenever we update the English source file. I've gone ahead and manually approved all of these translations now so that they would be persisted and no longer get lost with further updates to the English sources. Please treat them still as if they were unreviewed and make sure that they're good enough. :-) Apologies for the inconvenience!

  • bra1n
2 weeks ago
User avatar bra1n

Announcement posted

You people are awesome!

Thank you everyone who has signed up here and already started working on bring this amazing game into their local language. We actually already have the first fully translated language now, Swedish, thanks to the tireless work of @Eliderad, who translated 1800+ strings in less than 24 hours! We're now looking for someone to review those translations, before they can go live. (and also to make sure, Eliderad didn't just submit "Bork bork bork" 1800 times as the translation) In other news:

  • the script tool translation strings will also be added to the portal soon, when they're ready for translating

  • the pesky inaccessible Contributor License Agreement that bugged some people has been fixed

  • the Weblate roles are going to be overhauled at the beginning of the upcoming week, so that access rights to languages also reflect what people signed up for, rather than using generic "official" and "unofficial" language teams

  • the first translations are going to go live on the app some time next week along with the big app update that introduces translation support

    If you have any questions about some of the English app interface strings, please contact us directly through the platform here, DM us on Discord or send an email to support@botc.app and we'll make sure that the more tricky keys have an additional explanation for what they refer to. And if your language has some special intricacies (like more than 2 plural cases), let us know and we'll add support for it, too!

    Thanks for all your hard work, bra1n & Alejo

2 weeks ago
Browse all project changes