Skip to content

Now looking for translators! #647

Open

Description

@yishn

A lot of people have asked for translations and stated their willingness to help translating, so I'm happy to announce that we finally have an infrastructure in place to make translations as seamless as possible. Head over to Sabaki I18n to see how you can contribute.

To avoid duplicate work in the beginning, I suggest everyone who wants to start translating to comment with their language on this thread, so I can put them in this table:

Language Translator PR status
Dutch @benjaminvdb In Progress
German @Gargantuar314 In Progress
Brazilian Portuguese @joaomarcuslf2 Merged

A big thanks to all the translators in advance!

Activity

  1. pinned this issue on Mar 14, 2020
  2. geovens commented on Mar 15, 2020

    @geovens
    Contributor

    I almost finished Simplified Chinese
    https://github.com/geovens/sabaki-i18n/blob/master/src/zh-Hans.i18n.js
    but I have some questions:

    1. Many translated strings in preferences are not shown?
    2. Things like ${appName}, ${author} are not replaced?
    3. Are hotspots just bookmarks?
    4. What does 'fork' mean in navigation menu?
    5. What does 'move colorization' mean in view menu?
    6. Does 'zoom' in tools menu only affect game tree?
    7. Where does 'unclear position' or 'even position' show? Do they mean 'who will win is unclear' and 'black and white seems to have even chance to win'?
    8. What does 'instantly play out analysis variations on board' do?
    9. What does 'show automatic move titles' do?
    10. There are multiple strings of 'All Files'. Where are they shown?
    11. Where is AdvancedPropertiesDrawer?
    12. What does 'update result' in score drawer do?
  3. yishn commented on Mar 15, 2020

    @yishn
    MemberAuthor

    @geovens Thanks for your work! I put you on the list for Simplified Chinese.

    1. Thanks for the report, I'll try to fix it. In the meantime, you can toggle the Preferences checkboxes to update the strings manually.
    2. Please look at the model translation file en.i18n.js as how to handle interpolation. You can't just specify a string, but a function like this:
    '${appName} v${version}': p => `${p.appName} v${p.version}`
    1. Yes, but the specification calls thems hotspots, because the hotspot move should show "something interesting (e.g. node contains a game-deciding move)."
    2. A fork is a node where the game splits into multiple variations.
    3. If you annotate a move as 'good', 'interesting', 'doubtful', or 'bad', it will appear on the board with the colors green, blue, purple, or red if the setting is activated.
    4. No 'Zoom' affects the whole interface.
    5. If you annotate a move, it will be shown in the comments section as an icon. The text 'Unclear Position', etc. will be shown as tooltip.
    6. In engine analysis mode, if you hover on a stone, it will show the whole variation at once instead of playing the variation stone by stone if the setting is activated.
    7. For each move we generate a move title based on the move, e.g. 'Hane', 'One-Point Jump', 'Chinese Fuseki', etc. if the setting is activated.#
    8. Usually 'All Files' is shown in the open file dialog as an option for the extension filter.
    9. In the main menu, choose 'Tools' > 'Open SGF Properties...' to open the AdvancedPropertiesDrawer.
    10. 'Update Result' will write the end score into the SGF file.
  4. isty2e commented on Mar 15, 2020

    @isty2e

    I've completed most of the Korean translation:

    https://github.com/isty2e/sabaki-i18n/blob/korean/src/ko.i18n.js

    However, some go terms like "Dog's head" are not well defined in Korean and I think there is no proper jargon to describe such shapes. What is your recommendation?

  5. yishn commented on Mar 15, 2020

    @yishn
    MemberAuthor

    Thanks for your work! Not sure, either don't translate and fall back to English, or specify a string with a space character in it, so it doesn't fall back to English?

  6. isty2e commented on Mar 15, 2020

    @isty2e

    Then I'll let it fall back to English. Somebody might find an adequate translation, and I feel like leaving them as blank is not a good idea.

  7. added a commit that references this issue on Mar 15, 2020
  8. yishn commented on Mar 15, 2020

    @yishn
    MemberAuthor

    The 'Load Language File' feature is just a convenience. Not all strings can be replaced on runtime. For the actual language switching, the user will be required to restart Sabaki.

  9. added a commit that references this issue on Mar 15, 2020
  10. geovens commented on Mar 16, 2020

    @geovens
    Contributor

    While I made some changes in my translation, I also noticed that @af990m forked the repo again from my fork, and had made changes too. I believe that many of their changes are better than mine. So I guess af990m could consider check my last two commits as revision suggestions, merge them into theirs, and the main repo could merge from af990m's repo?

  11. af990m commented on Mar 16, 2020

    @af990m

    @geovens The result you submitted is very good!Although I used the same shortcut as the English version, but it detracts from the aesthetics of the interface. :(
    It's hard to compare which is better, so please ignore my PR. :)

  12. af990m commented on Mar 16, 2020

    @af990m

    I made a conversion from simplified to traditional
    https://github.com/af990m/sabaki-i18n/blob/master/src/zh-Hant.i18n.js

  13. 27 remaining items

  14. yishn commented on Mar 22, 2020

    @yishn
    MemberAuthor

    I think these should be the system strings of keyboard shortcuts. If they're not correct, you should probably open a bug on Electron, or even Chromium.

  15. yauwing commented on Mar 24, 2020

    @yauwing

    I just noticed that (I probably had done it before and then forgot) you can generate more than one move using the Generate Move command as following:

    Start a new handicapped game with at least 2 stones, and assign white player to a bot. The game would not start until Generate Move was invoked, after black responded, white will continue to generate the next move.

    line 107 and 260 Generate move is not exactly 讓引擎走一手, because the engine will continue to generate moves afterward. How about 讓引擎走棋?

    I don't know engine could continue to generate moves afterward. It has always been just one move for me. When does it generate multiple moves?

  16. yishn commented on Mar 24, 2020

    @yishn
    MemberAuthor

    This is the consequence of assigning an engine to a player. Sabaki will automatically generate a move for an engine if it is assigned to a player. But clicking on 'Generate Move' will only generate one move; it will not initiate an engine vs. engine or engine vs. player game.

    Attaching an engine and not assigning it to a player, clicking on 'Generate Move' will not let the engine continue generating moves after you respond.

  17. romton843 commented on Apr 8, 2020

    @romton843

    I'm working on the French translation... Thank you all for your great work.

  18. Gargantuar314 commented on Apr 17, 2020

    @Gargantuar314

    I would like to contribute for the German translation, although I don't know a lot of the German terms.

  19. yishn commented on Apr 17, 2020

    @yishn
    MemberAuthor

    @Gargantuar314 There's no need to provide a complete translation. Just do what you can and hopefully someone else can contribute to it. It's a community effort, after all!

  20. mlopezviedma commented on Apr 17, 2020

    @mlopezviedma

    Hi all! I'll gladly start working on the complete Spanish translation. Cheers!

  21. joaomarcuslf commented on Jun 22, 2020

    @joaomarcuslf

    Hi! I can contribute with Brazilian portuguese, can I create the branch?

  22. yishn commented on Jun 22, 2020

    @yishn
    MemberAuthor

    Sure, thanks a lot, I'll add you to the list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions