Contributing to this translation requires agreeing to its contributor license agreement.
Language Approved Translated Unreviewed Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
English 0 100% 0 0 0 0 0 53 0 0
Afrikaans 0% 16% 167 863 4,955 28,486 859 6 0 0
Bulgarian 0% 0% 0 1,030 5,640 32,618 1,030 0 2 0
Chinese (Simplified Han script) 89% 90% 7 97 1,452 7,950 94 2 0 0
Czech 85% 85% 0 150 1,826 10,135 138 0 0 0
Danish 83% 86% 23 144 1,722 9,529 139 8 0 19
Dutch 91% 91% 5 84 1,377 7,559 81 1 0 8
English (Pirate) 88% 89% 6 109 1,504 8,243 104 0 0 2
Esperanto 2% 10% 85 923 5,318 30,624 923 0 0 0
Finnish 0 0 0 0 0 0 0 2
French 89% 95% 67 43 1,150 6,211 43 0 26 39
Galician 88% 88% 0 123 1,583 8,706 117 6 0 0
Georgian 0% 51% 534 496 3,333 18,910 496 4 0 0
German 0 0 0 0 0 0 0 0
German (Switzerland) 85% 85% 0 147 1,732 9,605 142 15 0 0
Greek 0% 18% 192 838 4,876 28,050 838 2 0 1
Hebrew 9% 64% 569 368 2,951 16,518 363 0 0 2
Hindi 2% 12% 103 898 5,324 30,685 897 0 0 0
Hungarian 0% 7% 80 950 5,454 31,415 950 2 0 0
Indonesian 8% 37% 297 641 4,613 26,467 641 7 0 1
Italian 84% 99% 154 6 36 216 5 0 0 1
Japanese 91% 91% 0 85 1,381 7,583 82 3 0 0
Klingon 1% 6% 63 966 5,506 31,762 966 14 0 0
Korean 92% 92% 0 80 1,361 7,460 79 6 0 0
Latin 0% 0% 0 1,030 5,640 32,618 1,030 0 0 0
Lithuanian 0% 6% 71 959 5,491 31,637 959 2 0 0
Maltese 0% 10% 104 926 5,326 30,686 926 3 0 0
Norwegian Bokmål 99% 100% 10 0 0 0 0 1 0 2
Persian 0% 7% 73 957 5,385 31,083 957 0 0 0
Polish 91% 100% 83 0 0 0 0 4 0 16
Portuguese (Brazil) 99% 99% 1 5 34 204 5 0 0 17
Portuguese (Portugal) 87% 91% 48 83 1,375 7,544 80 0 0 0
Romanian 15% 36% 213 656 3,988 22,813 654 0 0 0
Russian 92% 99% 74 5 11 77 0 3 4 38
Serbian 0% 9% 93 937 5,336 30,787 937 4 0 0
Slovak 85% 85% 2 148 1,734 9,617 142 2 0 2
Slovenian 89% 89% 5 105 1,515 8,284 100 4 0 2
Spanish 90% 94% 34 61 672 3,749 60 1 10 27
Spanish (Latin America) 84% 84% 3 157 1,847 10,252 140 0 0 0
Spanish (Mexico) 89% 111 0 0 0 0 0 0 0
Swedish 0 0 0 0 0 0 0 0
Thai 99% 99% 1 5 34 204 5 0 0 0
Toki Pona 0% 15% 155 875 5,089 29,350 873 3 0 1
Turkish 25% 64% 402 366 2,923 16,476 318 1 0 1
Ukrainian 91% 91% 3 83 1,375 7,544 80 0 0 11
Vietnamese 87% 125 0 0 0 0 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 maintainers4 User avatar bra1nUser avatar oddGarrettUser avatar AlejoFBlackUser avatar Aggie
Project reviewers232 User avatar bra1nUser avatar oddGarrettUser avatar AaronLJZUser avatar nunu2User avatar NunuUser avatar testerUser avatar AlejoFBlackUser avatar SimskyUser avatar AggieUser avatar imitationfreakUser avatar SunisawesomeUser avatar hdmUser avatar MyrionUser avatar PPUser avatar survivorkikiUser avatar shellyUser avatar balevanciagaUser avatar andlarUser avatar GumUser avatar mannym2498User avatar BatnuUser avatar kloofelUser avatar Augurey2012User avatar ElideradUser avatar Alirmon
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.
  • Only approved translations are written to the translation file.
File mask app/*.json
Monolingual base language file app/en.json
06/17/2026

String statistics

Strings percent Hosted strings Words percent Hosted words Characters percent Hosted characters
Total 47,380 259,440 1,500,428
Source 1,030 5,640 32,618
Approved 54% 25,988 46% 121,364 47% 711,402
Waiting for review 8% 3,963 8% 21,567 8% 124,751
Translated 65% 30,981 57% 148,571 57% 868,771
Needs editing 1% 146 1% 985 1% 5,582
Read-only 2% 1,030 2% 5,640 2% 32,618
Failing checks 1% 157 1% 641 1% 3,901
Strings with suggestions 1% 42 1% 711 1% 3,886
Untranslated strings 34% 16,253 42% 109,884 41% 626,075

Quick numbers

259 k
Hosted words
47,380
Hosted strings
65%
Translated
0
Components
46
Languages
46
Translations
12
Screenshots
and previous 30 days

Trends of last 30 days

+23%
Hosted words
+100%
+7%
Hosted strings
+100%
−3%
Translated
+68%
−37%
Contributors
+100%
User avatar webhook:github

Changes committed

Changes committed 06/17/2026
User avatar aina

Translation approved

06/16/2026
User avatar aina

Translation approved

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
User avatar Patosalvaje

Suggestion added

06/16/2026
Browse all component changes