Policy change for "alternate translation character sheets"

1470096265

Edited 1470096294
Phil B.
Roll20 Development Team
Sheet Author
Hello sheet authors, I would like to inform everyone of an upcoming “new character sheet” policy change. Starting September 1st we will no longer be accepting “new” character sheets that are just alternate translations of already-existing character sheets. If you have one that you are already working on please have it done before the end of August. If you would like to add an additional translation to an existing sheet, please take advantage of the new  Translation Tools that we released recently and add the new translation to the existing sheet. If you have questions about how to do that, please let me know here and I will try and get you pointed in the right direction. Any alternate-translation sheets that already exist will be exempt, and can be updated as usual but we encourage you to combine them with the original sheet whenever possible. But, don’t worry, they won’t be going anywhere otherwise. Thank you for all of your time and hard work!
1471534138

Edited 1471534181
chris b.
Pro
Sheet Author
API Scripter
Are the current translation files in the "translations" subdirectory of each character sheet? Because under the Pathfinder one it looks like no one is translating it, so just wondering if that is the correct place to look.
1471547256
Phil B.
Roll20 Development Team
Sheet Author
Yes, any new translations will go in that folder. Just like our sheet authors, all of our translators are volunteers. So, we can't really force them to translate things. If you happen to know anyone that could translate the sheet for you, you can ask them to apply to be an official roll20 translator or they can translate the text directly in those files. 
1471547448
chris b.
Pro
Sheet Author
API Scripter
ok, i was considering copying and pasting from some of the translations that have already occured, which would only be some of the fields. But wasn't sure if that was wise since I don't know those languages. And mein Deutsche ist kaputt so..  I am not sure anyone uses the accessibility / aria features either.  :(
1472596735
Phil B. said: Yes, any new translations will go in that folder. Just like our sheet authors, all of our translators are volunteers. So, we can't really force them to translate things. If you happen to know anyone that could translate the sheet for you, you can ask them to apply to be an official roll20 translator or they can translate the text directly in those files.  What is the convention for the name of the translation files? For example I saw the file "pt.json" I know the ISO code for Portuguese is "pt" but what if I want to add a translation to the language of my country, Brazil, there is a problem sending a pull request with a file called "pt-br.json"? Also where I make the application to be an official roll20 translator?
1472663489
Phil B.
Roll20 Development Team
Sheet Author
The files in the Translations folder are automatically generated from Crowdin, so you probably don't want to create a new file. But, feel free to make changes to the pt.json file, which is Portuguese, and I'll be able to upload those back to Crowdin since it's one of the languages we support. If you would like to use our translating service, and be able to translate for more than just the character sheets you can email team@roll20.net and mention that you are interested in translating and they will go through the process with you.
1473270632
The option to select the language of character sheet is available? GM will be the only one who can set a language for the sheet or each player can choose one language?
1473270798
Phil B.
Roll20 Development Team
Sheet Author
The language, if available will be chosen to match the player's account settings. If you have your account set to Portuguese, then the sheet you translated should show up in Portuguese.
1473340492
Phil B. said: The language, if available will be chosen to match the player's account settings. If you have your account set to Portuguese, then the sheet you translated should show up in Portuguese. Haha ok, I was with the english language selected in my profile :)
1476187226
Natha
KS Backer
Sheet Author
API Scripter
Phil B. said: The files in the Translations folder are automatically generated from Crowdin, so you probably don't want to create a new file. But, feel free to make changes to the pt.json file, which is Portuguese, and I'll be able to upload those back to Crowdin since it's one of the languages we support. If you would like to use our translating service, and be able to translate for more than just the character sheets you can email team@roll20.net and mention that you are interested in translating and they will go through the process with you. Phil, when submiting a new sheet, can we provide a /translation/ subfolder with at least one translation file ? I'm in the process of creating my first "multi lingual" sheet, and the default texts will be in english, but I want to directly provide the french translation.
1476205696
Phil B.
Roll20 Development Team
Sheet Author
Yes. If you are writing a sheet with multiple languages you can create the translation folder and add the additional languages in files based on the language code. For French it would be fr.json. If one of the languages is English, I suggest that you make that your "base" language. (I know you said you are doing this already, I just wanted to point out why it's a good idea) You will have better luck finding additional translators this way, as all of the translators we currently have at least speak English + [another language]. (
1476259233
Natha
KS Backer
Sheet Author
API Scripter
Phil B. said: Yes. If you are writing a sheet with multiple languages you can create the translation folder and add the additional languages in files based on the language code. For French it would be fr.json. If one of the languages is English, I suggest that you make that your "base" language. (I know you said you are doing this already, I just wanted to point out why it's a good idea) You will have better luck finding additional translators this way, as all of the translators we currently have at least speak English + [another language]. ( Ok, thanks Phil. In my case, do I have to provide in /translation/:  - just the fr.json file ? - the en.json and fr.json files ? - all the files, with english texts inside of them, except for the fr.json ?
1476729884
Phil B.
Roll20 Development Team
Sheet Author
You only need to add the files for the additional translations you are adding. In your case specifically you only need the translation.json file in English and the additional /translations/fr.json in French. The rest will automatically be filled in by our system.
1481249022
Vince
Pro
Sheet Author
It looks like there are more trans json files than roll20 has languages.  What gives?  I noticed a change on the PF repo.  Is that Zulu? Thanks .
1481249182
chris b.
Pro
Sheet Author
API Scripter
i suggested it's probably zh, but a typo. it is all long unicode chars
1483397372
Phil B.
Roll20 Development Team
Sheet Author
ZH is Chinese Traditional, ZU is a "meta-language" that supports the In-App-Translation system that our translators can use to translate strings directly on the character sheet. Which is why it's a bunch of random characters and not actual words. We have had interest from some translators to translate into languages but very little, if any, actual translation was done so they are not selectable from the dropdown. If your sheet actually has translations for one of these "ghost languages" let me know and I'll make sure they make it onto the official list.
1483404546
Vince
Pro
Sheet Author
We're currently working with a Chinese translation.
1483404651
Phil B.
Roll20 Development Team
Sheet Author
That shouldn't be an issue, Chinese Traditional is already on the list. Just make sure the translation goes in the zh.json file.
1483405737
Vince
Pro
Sheet Author
Will do.
1483720216

Edited 1483720263
Orta
Pro
Sheet Author
Translator
Hello, In the process of implementing i18n tags on the SW FFG (API) sheet, I encounter a problem with the rolltemplate and I'd like your advice. So there are fields in the roll template that are dynamic, meaning depending on an input from the Sheet user (for example Custom skill). If I add the tag i18n-dynamic in the rolltemplate, it's working for known skills because they have a corresponding key. But for custom and user defined skills, it's obviously not working and give me the bracketed result : [customskill] for example. Is there a way to fix that ? Meaning, when the key exists, fetch it from the JSON, but when the key does not exist, just use the user input value. Thanks !
1483978983

Edited 1483979145
chris b.
Pro
Sheet Author
API Scripter
Can we get a post or wiki entry for translators, on "how to translate and submit a translation file" for a sheet that is ready for them. we have been pointing people to this but I realize it's not really for the translators who might not know any html at all and have a hard time figuring out it's pretty easy to submit some translations.  Including how to access the translated sheet when playing, i don't even know, where to choose that. on the browser's locale i guess? or is it in roll20. thx
1485324547
Vince
Pro
Sheet Author
How does someone get the "Translator" label?  I have worked with someone to create the French translation for the Symbaroum sheet with a German translation in the wings.  On the Pathfinder sheet we have a Chinese translation partially completed and strong interest for an Italian translation.  There can be lots of work in not only the direct translation of the json file, but in the communication and adjustments needed to make a proper translation.  It would be nice to give credit/recognition for their efforts.  Thanks
1485555091
Steve K.
Roll20 Development Team
Sheet Author
API Scripter
Compendium Editor
Vince said: How does someone get the "Translator" label?  I have worked with someone to create the French translation for the Symbaroum sheet with a German translation in the wings.  On the Pathfinder sheet we have a Chinese translation partially completed and strong interest for an Italian translation.  There can be lots of work in not only the direct translation of the json file, but in the communication and adjustments needed to make a proper translation.  It would be nice to give credit/recognition for their efforts.  Thanks The Roll20 Translators (those who get the tag) have gone through a vetting process. Once they're vetted they get access to translate anything on the site, the app, official sheets, and get tagged. If your translators are interested in getting vetted have them send an email to team@roll20.net with an explination of their other work on the site to speed them through the process.
1485555565

Edited 1485555678
Vince
Pro
Sheet Author
Steve K. said: Vince said: How does someone get the "Translator" label?  I have worked with someone to create the French translation for the Symbaroum sheet with a German translation in the wings.  On the Pathfinder sheet we have a Chinese translation partially completed and strong interest for an Italian translation.  There can be lots of work in not only the direct translation of the json file, but in the communication and adjustments needed to make a proper translation.  It would be nice to give credit/recognition for their efforts.  Thanks The Roll20 Translators (those who get the tag) have gone through a vetting process. Once they're vetted they get access to translate anything on the site, the app, official sheets, and get tagged. If your translators are interested in getting vetted have them send an email to team@roll20.net with an explination of their other work on the site to speed them through the process. Thanks Steve. BTW: that should probably be added to the wiki. ;-)
1486840997
Messiahcide
Pro
Sheet Author
It took me a little while before I figured out where to run the i18noutput command in the console. Didn't realize I should open the character sheet from my board to do so (i was trying to open the html file directly into a browser). Not sure if this should be mentioned in the wiki or if I'm just slow to get with the program here, but it was fun implementing it otherwise with the easy breezy instructions on the wiki. 
1487737834
Vince
Pro
Sheet Author
Is title="foo" in the html even necessary if there's data-i18n-title="foo" included?  Just wondering if we can remove the title text since it's already in our translation file.  TIA
1487747321
Loki
Pro
Sheet Author
from the wiki : You will want to add the "data-i18n=[unique-key]" attribute to every element that has text in it that you want translated. Keep all of the text that is already there in the element, because it can be used to generate your translation file for you when you are done (explained later). It is especially important that the text stays there while the sheet-i18n code is only on Dev, otherwise your sheet will no longer work on the main site until sheet-i18n makes it to main. It isn't needed to be kept in general, the bold parts seems to be deprecated. You'd might want to keep it in for several reasons thought: allows testing sheet html/css outside of roll20 the key does not need to be the same as the value and should be used to clearify things for the translator as needed. I.E.: <span data-i18n="magic-projection-short">MP</span> <span data-i18n="hide-ability">Hide</span> vs <span data-i18n="hide-skin/fur">Hide</span>
1487751728
Vince
Pro
Sheet Author
Good points Loki.  I forget that sometimes(often) a sheet may not be translated by someone who is familiar with the game.  We've also added aria info as well, so there is a lot of extraneous text to deal with... 
1487799074

Edited 1487799100
Phil B.
Roll20 Development Team
Sheet Author
Long Answer: You really don't need to have any of the actual text anywhere on your sheet once you've implemented the i18n tools. The text that's there is all completely overwritten by the key: string pairs anyways. The only reason to keep it there is to help with readability when looking at the code, and for context help if someone unfamiliar with the sheet is translating it. Short Answer: It's not necisary, but you should leave it should for readability sake.
1487820302
Vince
Pro
Sheet Author
Thanks Loki and Phil.
1487890778
Kryx
Pro
Sheet Author
I removed all strings that are replaced by data-i18n and have experienced no issues. It results in smaller html and less problems if you ever change those translations in the future. I think depending on the translation keys and not using the texts that are replaced is a better solution as it is the one most commonly used on production sites I work on.
1487896091
Vince
Pro
Sheet Author
Oh sure Kryx, just when I thought I made a decision to NOT remove any of the extra title and placeholder text...  ;-P
1488454115

Edited 1488454137
Loki
Pro
Sheet Author
How can I translate variables (?{Modifiers?|0}) in rolls? ?{^{modifiers?}|0} does not work as expected. The roll is part of a template call. Here one with the default template: &{template:default} {{name=^{attack}}} {{attack=[[1d100+?{^{modifiers?}|0}]]}} And this pops up when using it: Note: The roll still works aside from the default (0) not showing. Note 2: ^{modifiers?} or ^{modifiers} makes no difference.
1488612244
Vince
Pro
Sheet Author
AFAIK, we can't translate query text.  ;-(
1488837628
Phil B.
Roll20 Development Team
Sheet Author
If it's not listed in the wiki, it probably doesn't work (I honestly don't remember, it's been a while since I worked on this). Yet. I will take note of this to update the translation service to be more complete, and fill in any gaps I may have missed in the first few passes.
1489144085
Loki
Pro
Sheet Author
Sadly there is nothing in the wiki about that aside from the ^{<key>}. Thank you Phil for working on it.
1489339324
Alexander
Pro
Sheet Author
What if I create a character sheet that is better than the original and also provide translations back into the original sheet. I have finished translating and improving a Swedish sheet into English, but seen this thread and realised I probably went about the process the wrong way, however I now have a sheet which I could add translation files to, then the old sheet could get pulled and replaced by mine. But perhaps I would be wasting my time in providing translations. 
1489342832
Natha
KS Backer
Sheet Author
API Scripter
Phil B. said: If it's not listed in the wiki, it probably doesn't work (I honestly don't remember, it's been a while since I worked on this). Yet. I will take note of this to update the translation service to be more complete, and fill in any gaps I may have missed in the first few passes. It doesn't work. I signaled this as a "bug" a while ago.
1489444867

Edited 1489444893
Phil B.
Roll20 Development Team
Sheet Author
Alexander: If you have translated and improved a sheet, the best way to go about it would be to make sure you use the i18n tools and add both the old and new translations to the new and improved sheet. At that point I would replace the old sheet with your new sheet. (which now includes the 2 languages) Loki/Natha: Yeah, I looked into this and it is not a currently existing functionality. I have it on a list of improvements I would like to make to the translation tools, which will happen whenever I actually have some time available. The current list: (not official, definitely subject to change) Query Strings Roll tags, the "STR" in: 2d6 [STR] Being able to reorder lists for different languages. An alphabetical list will be different in every language, this will give a dynamic way to re-order them for each language Being able to change casing dynamically. So with the string "Ritual" you can also do "RITUAL" or "ritual" by setting a "case" flag. This way you don't need 3 separate strings for a single word. Being able to append/prepend untranslated characters to a string. This way you can use the string "Ritual" for "Ritual: " or " - Ritual", or "d4" "d6" "d10" can all be a single "d" and append the number on the end for each instance.
1489497685
Orta
Pro
Sheet Author
Translator
Phil B. said: [...] Query Strings Being able to reorder lists for different languages. An alphabetical list will be different in every language, this will give a dynamic way to re-order them for each language Being able to change casing dynamically. So with the string "Ritual" you can also do "RITUAL" or "ritual" by setting a "case" flag. This way you don't need 3 separate strings for a single word Great news Phil ! The dynamic sorting of the list is definitely a big plus. No more "where is Tromperie ? Ah yes at the beginning because it's actually Deception in english"...
1489512515

Edited 1489512533
chris b.
Pro
Sheet Author
API Scripter
Being able to append/prepend untranslated characters to a string. This way you can use the string "Ritual" for "Ritual: " or " - Ritual", or "d4" "d6" "d10" can all be a single "d" and append the number on the end for each instance. Actually using {0} {1} for search/replace inside the string would be better, since in any language the position of the variables might be different. And your function would just replace the {0},{1} with whatever strings are passed in directly without translating them.
1489517840

Edited 1489517932
Phil B.
Roll20 Development Team
Sheet Author
Chris B.: We already have this function, I was just giving an example, and maybe a poor example of how the new way could be used. I think mostly it will be used for punctuation like adding a ":" to the end of the string. And, just to set expectations: these are probably not going to happen any time soon. I'm pretty busy with a pile of other, more pressing, issues and don't see any free time anywhere on the horizon. In the mean time, there are work-arounds for most of these. For instance, with lists you can add a mirror of the section, sorted correctly, and just show/hide the proper sections based on the selected language.