qmk / qmk_configurator

The QMK Configurator
http://config.qmk.fm
695 stars 348 forks source link

Feature: Non--US Keyboard support #229

Open drashna opened 5 years ago

drashna commented 5 years ago

Specifically, something that we could toggle to enable non-US layouts, like we do with the keymap_extras folder in QMK Firmware.

That way, for non-US English users, it's more obvious what should go where.

yanfali commented 5 years ago

Sorry, can you give me some examples of how that would work?

heieisch commented 5 years ago

I looked into the >iso-jis.js File and modified a version for German Keybords. For testing and strange situations it wold be super cool if we coud upload a custom keycode.js (or .json File in the same stucture as the .js Files are now) In the Future ther coud be an dropdown menu like the keybord seleklektion for custom buttons

PS: I tried to localy replace the "iso-jis.js" using crome developer mode but failed any ideas?

yanfali commented 5 years ago

@heieisch hi, so this feature request isn't quite what you are requesting. Drashna is looking for API support to include non-us layouts support in QMK header files, which is something we don't support through the API yet. If you want a german ISO layout in the tabs, we could look into that. Attach your copy to this issue. I think a drop down would probably work, where we let you switch between JIS and DE. The other thing we could do is show you de by default if we detect you are from Germany.

One thing we could use help with is a German translation of the UI if you are interested.

yanfali commented 5 years ago

@heieisch I would recommend you check out a copy of the repo and install a development environment. then you can do development directly.

heieisch commented 5 years ago

I think a drop-down menu would be better due to the fact that many German Programmers code on us layout.

I`m not really good at coding... but I will try my best is there a guide to set up the development environment for the qmk Configurator?

If there are language files(configuration Files where there is the English version on one side and the translation next to it or something similar), I am going to Provide them. If I have to write code to localize I don´t think it is worth the effort because most Germans know enough English.

heieisch commented 5 years ago

I checked this configuration for the last hour and am fairly confident that it might work. din.zip

yanfali commented 5 years ago

@heieisch Hi! Vielen Dank. So, take a look at this commit https://github.com/qmk/qmk_configurator/commit/f033283a1deaabf77446d090b832dba039acd9b8 This was the translation done very generously by @gab-a and is a good overview of what is required. It's mostly taking the en.js JSON code and translating the labels into German. If you feel up to the task, we would love a contribution.

Anything you don't translate will fall back to English. So for example you don't have to do the potato facts.

There are some basic instructions on the README on how to set up development, but in summary:

  1. fork the qmk configurator
  2. create a branch for your work. e.g. git checkout -b heiseisch-de-translation
  3. you need to install node v11.12
  4. you need install yarn

then you would run yarn install, then yarn serve and you would point your browser at localhost:8080. When you edit the files it will reload the page and load in the new files. You would then setup similar files for 'de' in the i18n directory and begin translating them by editing and saving and it would update the UI.

Come find us on discord, link on README and we can talk you through any other issues. Thanks again. I will take a look at your file, it might take a bit of time to integrate cleanly.

yanfali commented 5 years ago

This is going to need some more work, as right now it can't differentiate in the rendering code between special characters. I'll create a branch

yanfali commented 5 years ago

https://github.com/yanfali/qmk_configurator/commit/2bf09c5a97b910c0464c7b12b3feb3baccb4d6ce

jbuschtoens commented 3 years ago

@yanfali what's the state of inlcuding din labels? Has something happened since that one commit? Should I just create a new issue if I want to work on it?

I don't know how to download a detached commit, but I was able to replecate on the current master locally. Seems to work for displaying the keys in a new tab. But when I drag them on the board, they have ansi labels again. Also, I don't think it's feasible for each language to have its own tab. I was thinking of a drop down menu that changes what is displayed in the iso_jis tab. And perhaps in an additional step it would be nice to acutally use the codes from keymaps_extra.

yanfali commented 3 years ago

This was 2 years ago, so this never really went anywhere. A couple of thoughts. Yes, it would be possible to have a visual translation in 2 places, both the iso layout and the on screen keyboard, but it would be a fair amount of work to test and implement. Secondly, at this time we would have to duplicate and maintain the extras data as there's no api that publishes this mapping. I'm not currently very active on development and unlikely to do this with for intrinsic reasons.

If you feel up to contributing and maintaining this feature, I'm open to reviewing a PR. I personally do not use non ANSI layouts, so am not motivated to implement this.

fauxpark commented 1 year ago

I think this can be closed now, thanks to the above PR?