Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion definition.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
name: custom-hotkeys
display-name: Custom Hotkeys
version: 0.2.1
version: 0.2.2
author: Krarilotus
type: module

tags: [hotkeys, interface, tools]
game: [SHC==1.41, SHCE==1.41]
dependencies:
framework: ">=3.0.7"
Expand Down
1 change: 1 addition & 0 deletions files.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
<file src="init.lua" />
<file src="code" />
<file src="README.md" />
<file src="locale" />
</files>
</module>
3 changes: 3 additions & 0 deletions locale/ch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: 快捷键
tags.interface: 界面
tags.tools: 工具
3 changes: 3 additions & 0 deletions locale/de.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Tastenkürzel
tags.interface: Oberfläche
tags.tools: Werkzeuge
3 changes: 3 additions & 0 deletions locale/en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Hotkeys
tags.interface: Interface
tags.tools: Tools
3 changes: 3 additions & 0 deletions locale/es.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Atajos de teclado
tags.interface: Interfaz
tags.tools: Herramientas
3 changes: 3 additions & 0 deletions locale/fa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: کلیدهای میانبر
tags.interface: رابط کاربری
tags.tools: ابزارها
3 changes: 3 additions & 0 deletions locale/fr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Raccourcis clavier
tags.interface: Interface
tags.tools: Outils
3 changes: 3 additions & 0 deletions locale/hu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Gyorsbillentyűk
tags.interface: Kezelőfelület
tags.tools: Eszközök
3 changes: 3 additions & 0 deletions locale/ru.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Горячие клавиши
tags.interface: Интерфейс
tags.tools: Инструменты
3 changes: 3 additions & 0 deletions locale/tr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
tags.hotkeys: Kısayol tuşları
tags.interface: Arayüz
tags.tools: Araçlar
3 changes: 2 additions & 1 deletion tests/test_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ def test_committed_module_package_is_reproducible_and_excludes_test_data(tmp_pat
names = set(archive.namelist())
assert {'init.lua', 'definition.yml', 'config.yml', 'build.json', 'code/native/runtime.lua'} <= names
assert all(name in ('init.lua', 'definition.yml', 'config.yml', 'README.md', 'build.json')
or name.startswith('code/') for name in names)
or name.startswith(('code/', 'locale/')) for name in names)
assert {f'locale/{lang}.yml' for lang in ('en', 'de', 'fr', 'es', 'hu', 'tr', 'ru', 'ch', 'fa')} <= names
assert not any(name.endswith(('.exe', '.dll')) or 'probe' in name for name in names)
embedded = json.loads(archive.read('build.json'))
assert embedded['commit'] == receipt['commit']
Expand Down
15 changes: 13 additions & 2 deletions tests/test_release_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
def test_optional_legacy_has_required_conflict_value_without_dependency_or_switch():
definition = yaml.safe_load((ROOT / 'definition.yml').read_text(encoding='utf-8'))
assert definition['display-name'] == 'Custom Hotkeys'
assert definition['version'] == '0.2.1'
assert definition['version'] == '0.2.2'
assert definition['tags'] == ['hotkeys', 'interface', 'tools']
assert 'family' not in definition
assert 'ucp2-legacy' not in definition['dependencies']
config = yaml.safe_load((ROOT / 'config.yml').read_text(encoding='utf-8'))['config-sparse']
assert config['plugins'] == {}
Expand All @@ -19,7 +21,7 @@ def test_optional_legacy_has_required_conflict_value_without_dependency_or_switc
'o_keys': {'enabled': {'contents': {'required-value': False}}}}}}
assert not (ROOT / 'options.yml').exists()
files = {entry.attrib['src'] for entry in ET.parse(ROOT / 'files.xml').findall('./files/file')}
assert files == {'definition.yml', 'config.yml', 'init.lua', 'code', 'README.md'}
assert files == {'definition.yml', 'config.yml', 'init.lua', 'code', 'README.md', 'locale'}


def test_all_store_languages_present_the_ingame_editor_without_release_notes():
Expand All @@ -37,6 +39,15 @@ def test_all_store_languages_present_the_ingame_editor_without_release_notes():
'Automarket', 'SHC 1.41', 'Extreme 1.41'))


def test_discovery_tags_have_translated_labels_in_every_store_language():
assert {p.stem for p in (ROOT / 'locale').glob('*.yml')} == LANGUAGES
for lang in LANGUAGES:
labels = yaml.safe_load((ROOT / 'locale' / f'{lang}.yml').read_text(encoding='utf-8'))
assert set(labels) == {'tags.hotkeys', 'tags.interface', 'tags.tools'}
assert all(isinstance(value, str) and value.strip() and '?' not in value
for value in labels.values())


def test_all_runtime_lua_parses(lua):
# Includes native-only adapters that cannot execute in the host architecture.
load = lua.eval('function(path) return assert(loadfile(path)) ~= nil end')
Expand Down
Loading