Menu

Tree [f45eb8] master /
 History

HTTPS access


File Date Author Commit
 StoreStuff 2019-02-04 Lauri Lähteinen Lauri Lähteinen [5e47b4] ImageMagick bat scripts for Windows. (gradle ch...
 api 2019-04-26 Menny Even Danan Menny Even Danan [27e480] Removing unused resources
 base 2019-04-26 Menny Even Danan Menny Even Danan [27e480] Removing unused resources
 buildSrc 2019-01-04 Menny Even Danan Menny Even Danan [285507] Migrating Greek
 configs 2018-11-17 Menny Even Danan Menny Even Danan [037dcf] Adding lint configuration
 gradle 2019-04-27 Menny Even Danan Menny Even Danan [44c6f8] Bumping gradle and CI docker
 languages 2019-05-26 mhdzli mhdzli [f45eb8] <commit comment>
 quicktexts 2019-04-03 Menny Even Danan Menny Even Danan [4eb2a2] Publishi bbcodes to a differect app-id
 scripts 2019-04-25 Menny Even Danan Menny Even Danan [7c0941] Ensuring errors break scripts
 themes 2019-04-26 Menny Even Danan Menny Even Danan [27e480] Removing unused resources
 .gitignore 2019-01-11 Menny Even Danan Menny Even Danan [353474] Collecting all APKs
 LICENSE 2018-11-16 Menny Even Danan Menny Even Danan [6fa4c7] Printing language packs
 README.md 2019-04-29 Ralph Giles Ralph Giles [ecd9af] Fix typo.
 build.gradle 2019-04-27 Menny Even Danan Menny Even Danan [9f61e4] Fix for maven publish plugin issue with newer g...
 circle.yml 2019-04-27 Menny Even Danan Menny Even Danan [44c6f8] Bumping gradle and CI docker
 gradle.properties 2019-03-16 Menny Even Danan Menny Even Danan [1d21d4] Migrating API into repo
 gradlew 2019-04-27 Menny Even Danan Menny Even Danan [44c6f8] Bumping gradle and CI docker
 gradlew.bat 2019-04-27 Menny Even Danan Menny Even Danan [44c6f8] Bumping gradle and CI docker
 key.store 2012-06-18 Menny Even Danan Menny Even Danan [f2ee4d] key store
 old_repo 2015-04-01 Menny Even Danan Menny Even Danan [fcbeae] Pointing to the old language-packs repo
 settings.gradle 2019-04-03 Menny Even Danan Menny Even Danan [7aab12] migrating BB-codes and supporting quick-keys ad...

Read Me

AnySoftKeyboard Add-On Packs

master latest build: CircleCI



    Gitter chat

This repo holds the Add-On API module and all the official language packs and themes for AnySoftKeyboard (in a mono-repo style).
Each language is a set of two modules, pack and apk. pack is an Android library that holds all the information about the language pack (keyboards, dictionaries, receivers, etc.),
while apk bundles that into an installable (and publishable) APK.

NOTE: this repo is in transition to mono-repo style. Some language-packs are in master while others are still in the old structure where each language-pack is a branch.

How to create a Language-Pack

Let's say you want to create a language-pack for Klingon. We'll call the pack klingon, and its locale is kl.
1. Easiest way to start, is to duplicate one of the other packs: cp -R english klingon.
1. Add the new modules to Gradle. Edit settings.gradle, add the line:

include ":languages:klingon:pack", ":languages:klingon:apk"
  1. At this point, you'll need to sync you Android Studio project.
  2. Rename the package names (com.anysoftkeyboard.english.* -> com.anysoftkeyboard.klingon.*:
    • Change package value in AndroidManifest.xml files (one in pack and the second in apk).
    • Move the PackBroadcastReceiver package to the right place.
  3. Rename the english_keyboards.xml and english_dictionary.xml files (under klingon/pack/src/main/res/xml) to klingon_keyboards.xml and klingon_dictionaries.xml.
  4. Replace the dictionary files under klingon/pack/dictionary with inputs matching your language (and remove what's not relevant):
    • Try to locate AOSP dictionary files (could be found at AOSP, or LineageOS) (you should use the XX_wordlist.combined.gz file).
    • If you have anything that was pre-built into a word-list XML, put those under klingon/pack/dictionary/prebuilt.
    • Add text files that will be parsed - word-counted - to generate word-list XMLs
  5. Generate the dictionary: ./gradlew :languages:klingon:pack:makeDictionary. This will create the following files (which should not checked into the repo):
    • raw resources under klingon/pack/src/main/res/raw/klingon_words_?.dict
    • IDs resource array under klingon/pack/src/main/res/values/klingon_words_dict_array.xml
  6. Edit klingon_dictionaries.xml:
    • to point to the new array resource @array/klingon_words_dict_array
    • replace the id with a new GUID.
    • replace name and description
    • replace the locale
  7. Set the status-bar icon text at klingon/pack/build.gradle: ext.status_icon_text = "kl"
  8. Replace the flag at klingon/apk/flagwith a, high-quality, png or svg, image of the flag. It should be namedflag.pngorflag.svg`. Note that sometimes svg files are not converted correctly, but they will produce highest quality if successful.
  9. To generate the icons, you'll need ImageMagick installed on your path. Check out the installation page for details.
  10. Generate the icons: ./gradlew :languages:klingon:pack:generateLanguagePackIcons :languages:klingon:apk:generateStoreLogoIcon. This will generate the following files (which should be checked into the repo):
    • klingon/pack/src/main/res/drawable-*/ic_status_klingon.png
    • klingon/apk/src/main/res/mipmap-*/ic_launcher.png
    • klingon/apk/src/main/play/listings/en-US/graphics/feature-graphic/pack_store_feature_graphics.png
    • klingon/apk/src/main/play/listings/en-US/graphics/icon/pack_store_icon.png
  11. Edit the keyboard layouts to your language, remove what's not needed, and add new ones if you need. Make sure the names of the layouts include you pack-name (klingon).
  12. Edit klingon_keyboards.xml. For each of the layouts you want in your pack (the layouts you created in the previous step):
    • Generate a new GUID.
    • Set the locale value at defaultDictionaryLocale to match the value you used in klingon_dictionaries.xml.
    • Set the status-bar icon at iconResId to the generate icon @drawable/ic_status_kl
    • Update the texts (name and description).

At this point, you should be able to build an APK that can be installed on your device:

./gradlew :languages:klingon:apk:assembleDebug

or directly install it on your connected device:

./gradlew :languages:klingon:apk:installDebug

Iterate on your pack until you feel it is good, and then create a PR to merge it to the master.

Publish pack

You can either publish by yourself, under your developer account and keep complete ownership, or you can let us (aka AnySoftKeyboard organization) do it.

Play Store Publish by AnySoftKeyboard organization

TO DO!!!

Languages in this repo

  1.  Afrikaans_oss: SourcePlay Store
  2.  Armenian2: Source
  3.  Brazilian: SourcePlay Store
  4.  Catalan: SourcePlay Store
  5.  English: Source
  6.  French: SourcePlay Store
  7.  Greek: SourcePlay Store
  8.  Hebrew: SourcePlay Store
  9.  Indonesian: SourcePlay Store
  10.  Italian: SourcePlay Store
  11.  Ossturkish: SourcePlay Store
  12.  Romanian: SourcePlay Store
  13.  Russian2: SourcePlay Store
  14.  Sardinian: Source
  15.  Spain: SourcePlay Store
  16.  Tamazight: SourcePlay Store

License

Copyright 2018 Menny Even-Danan

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.