Hi all!

With several languages now in the app, we're really happy with how the progress is going! However, we're several weeks into the project and some languages haven't had much if any progress. That's absolutely fine, there's no commitment on your end, but we're going to remove any language with <2% completion in a few days to clean up how the project looks and navigates for those who are working on it. Right now, that's Alemannic, Austrian German, Azerbaijani, Bengali, Bulgarian, Canadian French, Croatian, Filipino, Hungarian, Icelandic, Karelian, Peruvian Spanish, both Sami languages, Viossa, and Yiddish. All of these can be added back later (although likely with any work already done lost), and if you expect to start making progress on a language in the near future you can let me know at alejo@thepandemoniuminstitute.com (or anywhere else you can find me) and we can make an exception.

I'll be conducting regular reviews to check that there is some progress being made to all languages, in particular those (Indonesian and Latin) under 5%. If a language doesn't look like it's going to be complete, we still want to say a huge thank you for the time that you did put into it!

-Alejo

Contributing to this translation requires agreeing to its contributor license agreement.
Language Approved Translated Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
English 100% 100% 0 0 0 0 115 0 0
Afrikaans 0% 18% 761 3,496 20,526 757 5 0 0
Alemannic 0% 0% 932 4,201 24,785 932 0 0 0
Azerbaijani 0% 0% 932 4,201 24,785 932 0 0 0
Bengali 0% 0% 932 4,201 24,785 932 0 0 0
Bulgarian 0% 0% 932 4,201 24,785 932 0 0 0
Chinese (Simplified Han script) 96% 96% 32 209 1,249 31 1 0 0
Croatian 0% 0% 932 4,201 24,785 932 0 0 0
Czech 94% 94% 54 382 2,267 36 1 18 0
Danish 93% 96% 35 210 1,249 34 8 0 19
Dutch 95% 95% 39 294 1,718 18 15 2 18
English (Pirate) 28% 75% 230 1,014 6,025 228 36 0 0
Filipino 0% 0% 932 4,201 24,785 932 0 0 0
Finnish 7% 45% 507 2,580 15,185 502 1 7 17
French 96% 98% 12 83 471 11 0 2 55
French (Canada) 1% 1% 931 4,200 24,781 931 0 0 0
Galician 98% 98% 13 70 413 11 6 11 0
Georgian 0% 57% 392 1,869 10,918 392 1 0 0
German 98% 98% 11 60 353 11 0 0 0
German (Austria) 0% 0% 932 4,201 24,785 932 0 0 0
German (Switzerland) 96% 96% 37 219 1,312 36 13 0 0
Greek 0% 20% 737 3,421 20,122 737 0 0 1
Hebrew 10% 71% 264 1,487 8,526 261 0 0 2
Hindi 3% 14% 800 3,888 22,869 799 1 0 0
Hungarian 0% 3% 900 4,137 24,389 900 0 0 0
Icelandic 0% 2% 910 4,164 24,552 910 0 0 0
Indonesian 0% 4% 886 4,082 24,056 886 2 0 0
Italian 94% 98% 11 60 353 11 0 0 1
Japanese 98% 98% 13 64 374 13 0 0 8
Karelian 0% 0% 932 4,201 24,785 932 0 0 0
Klingon 0% 7% 866 4,057 23,875 866 0 0 0
Korean 0 0 0 0 0 0 0
Latin 0% 0% 932 4,201 24,785 932 0 0 0
Lithuanian 0% 7% 859 4,042 23,750 859 0 0 0
Norwegian Bokmål 96% 98% 14 65 389 14 1 1 2
Persian 0% 7% 860 3,947 23,254 860 0 0 0
Polish 97% 98% 11 60 353 11 0 17 15
Portuguese (Brazil) 97% 98% 11 60 353 11 0 0 15
Portuguese (Portugal) 97% 98% 11 60 353 11 0 0 0
Romanian 17% 40% 552 2,524 14,821 552 0 0 0
Russian 93% 97% 22 96 607 12 8 30 60
Sami 0% 0% 932 4,201 24,785 932 0 0 0
Sami (Northern) 0% 0% 932 4,201 24,785 932 0 0 0
Serbian 0% 10% 836 3,881 22,859 836 2 0 0
Slovak 95% 95% 38 221 1,324 36 2 0 2
Slovenian 1% 67% 307 1,403 8,221 307 3 0 2
Spanish 95% 98% 11 60 353 11 0 4 20
Spanish (Latin America) 94% 94% 48 337 1,978 34 0 0 0
Spanish (Mexico) 0% 98% 11 60 353 11 0 0 0
Spanish (Peru) 0% 0% 932 4,201 24,785 932 0 0 0
Swedish 98% 98% 11 60 353 11 0 0 0
Thai 31% 31% 642 3,052 17,984 639 0 0 0
Toki Pona 0% 16% 774 3,634 21,422 772 0 0 1
Turkish 24% 72% 254 1,277 7,506 223 28 3 1
Ukrainian 92% 98% 11 60 353 11 0 2 8
Vietnamese 97% 0 0 0 0 0 0 0
Viossa 0% 0% 932 4,201 24,785 932 0 0 0
Yiddish 0% 0% 932 4,201 24,785 932 0 0 0
Please sign in to see the alerts.

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 oddGarrettUser avatar AlejoFBlackUser avatar bra1n
Project reviewers205 User avatar DrewScrollUser avatar sterredagUser avatar RIPhoenixUser avatar PoedersuikerUser avatar survivorkikiUser avatar kloofelUser avatar GumUser avatar kpshkUser avatar nunu2User avatar CamiUser avatar coolseelUser avatar ElideradUser avatar ValisUser avatar dj_dj_djUser avatar ScienceGuyUser avatar just_anaUser avatar EardstapaArcticaUser avatar MalleUser avatar lostmorningUser avatar CaederisUser avatar h3oCharlesUser avatar castro732User avatar LuminatorUser avatar MavidUser avatar DianaJay
Translation license proprietary
Contributor license agreement

Thank you for your interest in contributing to Blood on the Clocktower (“BotC”), provided by The Pandemonium Institute Pty Ltd (“TPI”). You must agree to all terms of this Contributor License Agreement before you contribute any translations or other BotC content to TPI (collectively, “Contributions”) through this site. If you do not agree, you are prohibited from participating in this project.

This license is not only for the protection of the contributors themselves, but also for the protection of the project and its users; it does not change your rights to use your own Contributions for any other purpose.

Version 1.0 – September 25, 2025

You and TPI agree:

You grant TPI the ability to use the Contributions in any way, in TPI’s sole discretion. You hereby grant to TPI a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your Contribution and any derivative works thereof in any and all media and forms now known or hereafter invented.

You represent and warrant that you are legally entitled to grant the above license. If your employer has rights to intellectual property that you create, you represent that you have received permission to make the Contributions on behalf of that employer, or that your employer has waived such rights for the Contributions.

You represent and warrant that the Contributions are your original work and, to your knowledge, no other person claims or has the right to claim any rights in or to any copyrights, trademarks, inventions, or patents, or any moral rights, related to the Contributions. You also represent that you are not under any legal obligations that in any way conflict with the terms of this license. For example, if you have signed an agreement requiring you to assign the intellectual property rights in the Contributions to an employer or customer, that would conflict with the terms of this license.

TPI has the sole right to determine which translations and other content are used in the BotC project or any other TPI uses. You understand that the decision to include the Contributions in any project is entirely that of TPI, and this agreement does not guarantee that the Contributions will be included in any product.

No Implied Warranties. TPI acknowledges that, except as explicitly described in this Agreement, the Contributions are provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.

This license agreement shall be construed and enforced in accordance with the laws of Australia without regard to principles of conflict of laws that would cause the laws of any other jurisdiction to apply.

Translation process
  • Translations can be made directly.
  • Translation suggestions can be made.
  • Translations are reviewed by dedicated reviewers.
  • Only chosen users can contribute.
  • The translation uses monolingual files.
  • The translation base language can not be edited.
File mask app/*.json
Monolingual base language file app/en.json
an hour ago

String statistics

Strings percent Hosted strings Words percent Hosted words Characters percent Hosted characters
Total 54,056 243,658 1,437,530
Source 932 4,201 24,785
Approved 38% 20,920 38% 92,693 38% 546,903
Waiting for review 9% 5,432 9% 23,005 9% 136,683
Translated 50% 27,284 49% 119,899 49% 708,371
Needs editing 1% 122 1% 794 1% 4,687
Read-only 1% 932 1% 4,201 1% 24,785
Failing checks 1% 249 1% 1,242 1% 7,210
Strings with suggestions 1% 97 1% 481 1% 2,912
Untranslated strings 49% 26,650 50% 122,965 50% 724,472

Quick numbers

241 k
Hosted words
53,708
Hosted strings
50%
Translated
0
Components
58
Languages
58
Translations
13
Screenshots
and previous 30 days

Trends of last 30 days

+11%
Hosted words
+100%
+10%
Hosted strings
+100%
+24%
Translated
+26%
−100%
Contributors
+100%
User avatar weblate:commit

Changes committed

Changes committed an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation completed

Translation completed an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation approved

an hour ago
User avatar USIJ

Translation added

an hour ago
Browse all component changes