Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Non--US Keyboard support #229

Open
drashna opened this issue Dec 25, 2018 · 12 comments
Open

Feature: Non--US Keyboard support #229

drashna opened this issue Dec 25, 2018 · 12 comments

Comments

@drashna
Copy link
Member

drashna commented Dec 25, 2018

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
Copy link
Collaborator

yanfali commented Feb 11, 2019

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

@heieisch
Copy link
Contributor

heieisch commented May 23, 2019

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
Copy link
Collaborator

yanfali commented May 23, 2019

@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
Copy link
Collaborator

yanfali commented May 23, 2019

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

@heieisch
Copy link
Contributor

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
Copy link
Contributor

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

@yanfali
Copy link
Collaborator

yanfali commented May 23, 2019

@heieisch Hi! Vielen Dank. So, take a look at this commit f033283 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
Copy link
Collaborator

yanfali commented May 23, 2019

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
Copy link
Collaborator

yanfali commented May 23, 2019

yanfali@2bf09c5

@jbuschtoens
Copy link

@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
Copy link
Collaborator

yanfali commented Oct 17, 2021

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
Copy link
Member

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

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

No branches or pull requests

5 participants