Compare commits

..

4 Commits

Author SHA1 Message Date
Jules Aguillon
50b986ef28 Workaround Godot editor not implementing setSelection()
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
This was tested against:

    org.godotengine.editor.v3
    org.godotengine.editor.v4
2025-07-06 21:56:33 +02:00
solokot
309fba4766 Update Russian translation (#1035)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-07-05 12:45:51 +02:00
Jules Aguillon
d1dfc80df6 ci: Disable translation check
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
The translation check is creating conflicts with changes done on Weblate
and is superfluous.
2025-07-02 23:15:33 +02:00
Joey Schaff
5c4964e438 Add a missing comma in /res/values/strings.xml (#1026) 2025-07-02 23:13:12 +02:00
7 changed files with 33 additions and 53 deletions

View File

@@ -1,16 +0,0 @@
name: Check translations
on:
workflow_dispatch:
push:
pull_request:
jobs:
check-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- run: python3 sync_translations.py
- name: "Check that strings files are uptodate, otherwise run 'python3 sync_translations.py'"
run: git add -N . && git diff --exit-code

View File

@@ -173,13 +173,13 @@ Remove the `<!--` and `-->` parts and change the text.
### Adding a translation
The preferred method for translating the app is to use Weblate:
https://hosted.weblate.org/engage/unexpected-keyboard/
The `res/values-<language_tag>/strings.xml` file must be created by copying the
default translation in `res/values/strings.xml`, which contain the structure of
the file and the English strings.
To check that `strings.xml` is formatted correctly, run
`python sync_translations.py`. This will modify your files.
Store descriptions in `fastlane/metadata/android/` are updated automatically.
Translating changelogs is not useful.

View File

@@ -5,9 +5,9 @@
<string name="short_description">Легкая клавиатура для пользователей, заботящихся о конфиденциальности.</string>
<string name="store_description">Главная особенность клавиатуры — это возможность легко напечатать любой ASCII-символ жестами в углы клавиш.\n\nПриложение изначально было разработано для использования с Termux.\nНа данный момент оно также удобно в повседневном использовании.\n\nПриложение не содержит рекламы, не осуществляет никаких запросов в сеть и имеет открытый исходный код.</string>
<string name="pref_portrait">В портретном режиме</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_portrait_unfolded">В развернутом портретном режиме</string>
<string name="pref_landscape">В ландшафтном режиме</string>
<!-- <string name="pref_landscape_unfolded">In landscape mode unfolded</string> -->
<string name="pref_landscape_unfolded">В развернутом ландшафтном режиме</string>
<string name="pref_category_layout">Расположение</string>
<string name="pref_label_brightness">Изменить яркость клавиатуры</string>
<string name="pref_keyboard_opacity">Изменить прозрачность фона</string>
@@ -19,9 +19,9 @@
<string name="pref_layouts_item">Раскладка %1$d: %2$s</string>
<string name="pref_layouts_remove_custom">Удалить раскладку</string>
<string name="pref_custom_layout_title">Пользовательская раскладка</string>
<!-- <string name="pref_show_number_row_no_number_row">No number row</string> -->
<!-- <string name="pref_show_number_row_no_symbols">Number row without symbols</string> -->
<!-- <string name="pref_show_number_row_symbols">Number row with symbols</string> -->
<string name="pref_show_number_row_no_number_row">Без ряда цифр</string>
<string name="pref_show_number_row_no_symbols">Ряд цифр без символов</string>
<string name="pref_show_number_row_symbols">Ряд цифр с символами</string>
<string name="pref_show_numpad_title">Показывать цифровой блок</string>
<string name="pref_show_numpad_never">Никогда</string>
<string name="pref_show_numpad_landscape">Только в ландшафтном режиме</string>
@@ -49,10 +49,10 @@
<string name="pref_switch_input_immediate_summary">Поведение клавиши переключения клавиатуры</string>
<string name="pref_vibrate_custom">Настройка вибрации</string>
<string name="pref_vibrate_duration_title">Интенсивность вибрации</string>
<!-- <string name="pref_number_entry_title">Layout when typing numbers, dates and phone numbers</string> -->
<!-- <string name="pref_number_entry_layout_pin">PIN Entry</string> -->
<!-- <string name="pref_number_entry_layout_number">Number pane</string> -->
<!-- <string name="pref_number_entry_layout_normal">Use the main layout</string> -->
<string name="pref_number_entry_title">Раскладка для ввода цифр, дат и телефонных номеров</string>
<string name="pref_number_entry_layout_pin">Ввод PIN-кодов</string>
<string name="pref_number_entry_layout_number">Цифровая панель</string>
<string name="pref_number_entry_layout_normal">Основная раскладка</string>
<string name="pref_category_style">Стиль</string>
<string name="pref_margin_bottom_title">Нижняя граница поля</string>
<string name="pref_keyboard_height_title">Высота клавиатуры</string>
@@ -127,12 +127,12 @@
<string name="key_descr_zwnj">Разделитель нулевой ширины</string>
<string name="key_descr_nbsp">Неразрывный пробел</string>
<string name="key_descr_nnbsp">Узкий неразрывный пробел</string>
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
<!-- <string name="key_descr_gesture">Gesture</string> -->
<string name="key_descr_delete_word">Удалить слово</string>
<string name="key_descr_forward_delete_word">Удалить слово справа</string>
<string name="key_descr_gesture">Жест</string>
<string name="clipboard_history_heading">Недавно скопированный текст</string>
<string name="clipboard_pin_heading">Закреплено</string>
<string name="clipboard_remove_confirm">Удалить этот буфер обмена?</string>
<string name="clipboard_remove_confirmed">Да</string>
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
<string name="toast_no_voice_input">Приложение для голосового ввода не установлено</string>
</resources>

View File

@@ -49,7 +49,7 @@
<string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string>
<string name="pref_vibrate_custom">Custom vibration</string>
<string name="pref_vibrate_duration_title">Vibration intensity</string>
<string name="pref_number_entry_title">Layout when typing numbers, dates and phone numbers</string>
<string name="pref_number_entry_title">Layout when typing numbers, dates, and phone numbers</string>
<string name="pref_number_entry_layout_pin">PIN Entry</string>
<string name="pref_number_entry_layout_number">Number pane</string>
<string name="pref_number_entry_layout_normal">Use the main layout</string>

View File

@@ -168,7 +168,7 @@ public final class Config
switch_input_immediate = _prefs.getBoolean("switch_input_immediate", false);
extra_keys_param = ExtraKeysPreference.get_extra_keys(_prefs);
extra_keys_custom = CustomExtraKeysPreference.get(_prefs);
selected_number_layout = NumberLayout.of_string(_prefs.getString("number_entry_layout", "pin"));
selected_number_layout = NumberLayout.valueOf(_prefs.getString("number_entry_layout", "pin").toUpperCase());
current_layout_portrait = _prefs.getInt("current_layout_portrait", 0);
current_layout_landscape = _prefs.getInt("current_layout_landscape", 0);
current_layout_unfolded_portrait = _prefs.getInt("current_layout_unfolded_portrait", 0);

View File

@@ -41,12 +41,7 @@ public final class KeyEventHandler
public void started(EditorInfo info)
{
_autocap.started(info, _recv.getCurrentInputConnection());
// Workaround a bug in Acode, which answers to [getExtractedText] but do
// not react to [setSelection] while returning [true].
// Note: Using & to workaround a bug in Acode, which sets several
// variations at once.
_move_cursor_force_fallback = (info.inputType & InputType.TYPE_MASK_VARIATION &
InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0;
_move_cursor_force_fallback = should_move_cursor_force_fallback(info);
}
/** Selection has been updated. */
@@ -473,6 +468,17 @@ public final class KeyEventHandler
return (conn.getSelectedText(0) != null);
}
/** Workaround some apps which answers to [getExtractedText] but do not react
to [setSelection] while returning [true]. */
boolean should_move_cursor_force_fallback(EditorInfo info)
{
// This catch Acode: which sets several variations at once.
if ((info.inputType & InputType.TYPE_MASK_VARIATION & InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0)
return true;
// Godot editor: Doesn't handle setSelection() but returns true.
return info.packageName.startsWith("org.godotengine.editor");
}
public static interface IReceiver
{
public void handle_event_key(KeyValue.Event ev);

View File

@@ -1,17 +1,7 @@
package juloo.keyboard2;
public enum NumberLayout {
PIN,
NUMBER,
NORMAL;
public static NumberLayout of_string(String name)
{
switch (name)
{
case "number": return NUMBER;
case "normal": return NORMAL;
case "pin": default: return PIN;
}
}
PIN,
NUMBER,
NORMAL
}