keymanapp / keymanapp/keyman

feat: Language Specific Keyboard Icons

Open
#13,605 1 comment 0 reactions 0 assignees View on GitHub
common/ feat
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Is your feature request related to a problem? Please describe.

A keyboard that supports multiple languages has only a single icon to associate with the keyboard. This may not be the most optimal experience for the user to locate the keyboard from a list of available keyboards. This request is to support multiple, language-tagged, icons that can be packaged with the keyboard. The keyman installer will apply the appropriate icon (for the taskbar and other contexts) that is associated with the language that the user selects at installation time.

### Describe the solution you'd like

Somehow, the keyman language supports a mechanism to specify a list of icons associated with a language. Three approaches are reviewed below.

1. The `BITMAP` variable is updated to read a list of space-delimited icon files. The filenames must end with the language tag before the `.ico`. The first icon in the list, with no language tag, is a default that can be used in language-neutral contexts such as packaging. An advantage of this approach is that no change is made to the Keyman language keywords.


```
store(&BITMAP) 'gff_foo.ico gff_foo_am.ico gff_foo_byn.ico gff_foo_ti_ER.ico gff_foo_ti_ET.ico'
```

2. The language tag is appended to the `BITMAP` variable. This approach allows for more flexibility in the icon file names, but at the cost of polluting the Keyman language more:

```
store(&BITMAP_am) 'gff_foo_am.ico'
store(&BITMAP_byn) 'gff_foo_blin.ico'
store(&BITMAP_ti_ER 'gff_foo_ti_ER.ico'
store(&BITMAP_ti_ET) 'gff_foo_ti_ET.ico'
: : :

```

3. The `BITMAPS` keyword is introduced and is assigned to a JSON block of language tags to icon mappings:

```
store(&BITMAPS) '{
'am' : 'gff_foo_am.ico',
'byn' : 'gff_foo_blin.ico',
'ti_ER' : 'gff_foo_ti_ER.ico',
'ti_ET' : 'gff_foo_ti_ET.ico'
}'

```

### Describe alternatives you've considered

_No response_

### Related issues

_No response_

### Keyman apps

- [x] Keyman for Android
- [x] Keyman for iPhone and iPad
- [x] Keyman for Linux
- [x] Keyman for macOS
- [x] Keyman for Windows
- [ ] Keyman Developer
- [x] KeymanWeb
- [ ] Other - give details at bottom of form

### Keyman version

17.0.325

### Operating system

Any

### Device

Any

### Target application

N/A

### Browser

N/A

### Keyboard name

ANy

### Keyboard version

Any

### Language name

Any

### Additional context

To clarify the multilingual scenario, the screenshot below shows the keyman installer with a menu of languages to select from at installation time. A language specific-icon would help maintain the association between the language and keyboard. A nice touch woudl be to present the language-tagged icon in the dropdown menu as well.

Image

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.