Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
d314bb8
Migrate Language component to the Component Revision architecture and…
c-knof Sep 17, 2026
0d5bab4
Language: Take RBAC from the component graph in the Activities
c-knof Oct 12, 2026
a3a6af6
Language: Take the database from the component graph
c-knof Oct 12, 2026
3ad5006
Language: Read the languages for the Setup label from the Setup database
c-knof Oct 12, 2026
e2f390b
Language: Take the installation root from `Directories`
c-knof Oct 12, 2026
30b85de
Init: Drop the unused `ILIAS\Language\Language` entry from the legacy…
c-knof Oct 12, 2026
0cc0c8b
Language: Stop providing the installation repository and manager
c-knof Oct 12, 2026
9ac59d4
Language: Hand the language folder to the Activities as `LanguageFolder`
c-knof Oct 12, 2026
28be27f
Language: Note the remaining legacy container use in the roadmap
c-knof Oct 12, 2026
cf99651
Language: Shorten the comments added by the Component Revision
c-knof Oct 13, 2026
47f834f
Language: Report Activity errors with status codes like the File Acti…
c-knof Oct 19, 2026
24cca45
Language: Refuse the anonymous user and pass the user id inline like …
c-knof Oct 19, 2026
8725ec5
Language: Describe the Activities with the `DataFactory` and titled s…
c-knof Oct 19, 2026
4b08990
Language: Bundle the legacy access of the Activities in a `Repository…
c-knof Oct 19, 2026
d18dc7c
Language: Mask database errors whose code is a SQLSTATE string
c-knof Oct 19, 2026
f614be7
Language: Shorten the comments of the Activities, their wiring and tests
c-knof Oct 19, 2026
39edbb6
Language: Give the language service only to `AddLanguageEntry`
c-knof Oct 19, 2026
bcba0b5
[FIX] File: take the current wording of could_not_create_file_objs
chfsx Oct 19, 2026
b751724
[REFACTOR] Language: add license header and restore @internal markers…
chfsx Oct 19, 2026
84eebae
[FIX] Language: invalidate the translation cache when lng_modules cha…
chfsx Oct 19, 2026
5365798
[REFACTOR] Language: assert the contributions of the component indepe…
chfsx Oct 19, 2026
0645be2
[REFACTOR] Language: hand the installation root to the repository ins…
chfsx Oct 19, 2026
69eabd8
[REFACTOR] Language: take the settings of the Activities from a legac…
chfsx Oct 19, 2026
cdc2f8a
Language: Protect the table actions of `ilObjLanguageFolderGUI` again…
c-knof Oct 21, 2026
7beef90
[FIX] Language: Load `ilLangDeprecated` through the autoloader in `il…
c-knof Oct 21, 2026
0599fd9
Language: Remove the unreachable confirmation screens from `ilObjLang…
c-knof Oct 21, 2026
bec2aa8
Language: Pass the previous exception positionally in `GrindsFormInput`
c-knof Oct 22, 2026
bdec72f
Language: Expect the calls whose arguments the tests check
c-knof Oct 22, 2026
cfeb84f
Language: Mark the internal settings, cache and installation root typ…
c-knof Oct 22, 2026
4aff463
File: Take the language files back into the global language files
c-knof Oct 12, 2026
378cdda
Language: Maintain the translations of single modules in PO files
c-knof Oct 12, 2026
36f2a70
Language: Add ntxt() for plural forms of modules in PO files
c-knof Oct 12, 2026
0203d7b
Language: Add a tool that converts a module into PO files
c-knof Oct 12, 2026
04833cd
TermsOfService: Serve the translations from PO files
c-knof Oct 12, 2026
0961ca8
Poll: Serve the translations from PO files
c-knof Oct 12, 2026
dee2e38
Language: Add translate() with generated LanguageIdentifier enums
c-knof Oct 12, 2026
dc52905
Language: Adapt the Activities to modules maintained in PO files
c-knof Oct 12, 2026
6b5809c
Language: Document the modules maintained in PO files
c-knof Oct 12, 2026
39e30fc
Language: Do not depend on directory order in a plugin uninstall test
c-knof Oct 12, 2026
d4628d8
Language: Inject the installation root into the `RepositoryProvider` …
c-knof Oct 13, 2026
8c9729c
Language: Log the installation warnings through the injected `lang` l…
c-knof Oct 13, 2026
705cb97
Language: Take the client data directory from `Directories` and the c…
c-knof Oct 13, 2026
f57ff67
Poll, TermsOfService: Drop the return type of the language file direc…
c-knof Oct 13, 2026
cccad98
Language: Check for shipped PO modules in one place
c-knof Oct 13, 2026
77f5f6e
Language: Merge into the shipped PO files regardless of the number of…
c-knof Oct 13, 2026
5dc0c62
TermsOfService: Remove the tos module from the global language files
c-knof Oct 13, 2026
246db8f
Poll: Remove the poll module from the global language files
c-knof Oct 13, 2026
f1df422
Refinery: Accept a `LanguageIdentifier` in the `Language` test doubles
c-knof Oct 14, 2026
5ce4e4f
Language: Accept a `LanguageIdentifier` in `txt()` and `ntxt()`
c-knof Oct 14, 2026
6e33e0b
Language: Remove the unused scope handling from `ilObjLanguage`
c-knof Oct 14, 2026
116a3de
Exercise: Drop the fallback module argument of `txt()`
c-knof Oct 14, 2026
0b252da
Survey: Drop the fallback module argument of `txt()`
c-knof Oct 14, 2026
3ec5a84
WebServices: Drop the fallback module argument of `txt()`
c-knof Oct 14, 2026
f9734f6
OrgUnit: Drop the fallback module argument of `txt()`
c-knof Oct 14, 2026
3f8cf7c
Forum: Drop the fallback module argument of `txt()`
c-knof Oct 14, 2026
089fcd4
Component: Serve the translations from PO files
c-knof Oct 13, 2026
a91cb8f
Repository: Load the `cmps` module instead of passing it to `txt()`
c-knof Oct 14, 2026
cc69813
WebDAV: Load the `meta` module instead of passing it to `txt()`
c-knof Oct 14, 2026
5956b55
Language: Replace `ntxt()` and the fallback module by `txt($a_topic, …
c-knof Oct 14, 2026
b79e049
UI: Follow the new signature of `ilLanguage::txt()` in `LanguageMock`
c-knof Oct 14, 2026
99d60a4
Refinery: Follow the new signature of `Language::txt()` in the test d…
c-knof Oct 14, 2026
08c7ff2
Language: Serve the translations from PO files
c-knof Oct 13, 2026
9915cf0
Language: Keep serving a module whose shipped `.po` cannot be compiled
c-knof Oct 14, 2026
301b111
Language: Keep the remarks of the overlay in line with the imported file
c-knof Oct 14, 2026
395ecce
Language: Fix the setup warning about the missing client data directory
c-knof Oct 14, 2026
d4bf6e6
Language: Make `convert_module_to_po.php` write all files or none
c-knof Oct 14, 2026
2a820cd
Language: Update the documentation of modules maintained in PO files
c-knof Oct 14, 2026
20c0237
Language: Recognise the "new variable" marker behind further `#`
c-knof Oct 15, 2026
96b853c
Language: Keep the notes of a language as translator comments
c-knof Oct 15, 2026
bb5650e
Language: Check the converted values like the build in `convert_modul…
c-knof Oct 15, 2026
02a743c
Language: Refuse two directories that ship the same language files
c-knof Oct 20, 2026
f0462d2
Language: Assert the contributed modules of the component by their pr…
c-knof Oct 20, 2026
1449cf0
Language: Refuse a new entry whose identifier exists in another module
c-knof Oct 20, 2026
bc84d53
Language: Check the shipped PO files in "check all languages"
c-knof Oct 20, 2026
9883ada
Language: Name the languages with invalid files when an install or re…
c-knof Oct 20, 2026
198a99c
Language: Serve migrated modules without CLIENT_DATA_DIR
c-knof Oct 16, 2026
8eee37c
Language: Never read shipped modules from the database
c-knof Oct 16, 2026
a03ede1
Language: Build the shipped language files before installing languages
c-knof Oct 16, 2026
f6f728c
Language: Document that shipped modules never fall back to the database
c-knof Oct 16, 2026
44281fb
Language: Test that shipped modules are never read from the database
c-knof Oct 16, 2026
573471d
Language: Never fall back to the database in the language administration
c-knof Oct 16, 2026
d9a43f1
Language: Prefer CLIENT_ID when resolving the client data directory
c-knof Oct 16, 2026
d292c5a
Language: Forget the resolved client data directory with the served b…
c-knof Oct 16, 2026
1b3a3a7
Language: Record the contributed modules in current.json
c-knof Oct 16, 2026
5908848
Language: Test the language administration without the database fallback
c-knof Oct 16, 2026
91ba34c
Language: Accept language files of only the header when checking all …
c-knof Oct 16, 2026
c74a83a
Language: Check the content of a module before saving any of its changes
c-knof Oct 19, 2026
6bf2655
Language: Keep the build when the list of contributed modules is invalid
c-knof Oct 19, 2026
b0a1be6
Language: Remember a missing client data directory until the served b…
c-knof Oct 19, 2026
c272c53
Language: Take over the local changes in lng_data only once
c-knof Oct 19, 2026
14b73c0
Language: Test saving only readable modules and taking over local cha…
c-knof Oct 19, 2026
7b13dd8
Language: Report overlays of unshipped modules and unrecorded take-ov…
c-knof Oct 21, 2026
673e7ac
Language: Merge local changes into the PO files even if the global la…
c-knof Oct 22, 2026
f34ec24
Language: Fix the PHPStan findings in the PO file handling
c-knof Oct 22, 2026
a2b9321
Language: Report invalid language files as a translated server-side e…
c-knof Oct 22, 2026
c1c1c1f
Language: Remove the scan of duplicate keys in the global language files
c-knof Oct 22, 2026
ff96293
Language: Count the build warnings in Setup if the build is unchanged
c-knof Oct 22, 2026
723901d
Language: Dispatch an exact allowlist of commands in `ilObjLanguageEx…
c-knof Oct 22, 2026
1ac9e45
Language: Serve the migrated modules through a `TranslationRepository`
c-knof Oct 21, 2026
9c5bba0
Language: Hash all catalog classes for the compatibility of a former …
c-knof Oct 22, 2026
c5643dc
Language: Refuse imported entries whose identifier exists in another …
c-knof Oct 22, 2026
0b9cd9e
Language: Name the invalid language files when installing with the cu…
c-knof Oct 22, 2026
b20a913
Language: Skip entries of the customizing file whose identifier exist…
c-knof Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
/db_template_writer.php
/components/ILIAS/Database/sql/dbupdate_custom.php
/install_client.php
/lang/customizing/*.po
/lang/customizing/ilias_*.lang

# Directories
/public
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ private function mockUserLanguageGerman(): void
$ilDB->method('query')->willReturnCallback(function ($query): ilDBStatement {
$statement = $this->createMock(ilDBStatement::class);

if (str_contains($query, 'SELECT * FROM lng_modules')) {
if (str_contains($query, 'FROM lng_modules')) {
$statement->method('numRows')->willReturn(1);
$statement->method('fetchRow')->willReturn([
'lang_array' => serialize([
Expand Down
7 changes: 7 additions & 0 deletions components/ILIAS/Component/Component.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@

namespace ILIAS;

use ILIAS\Language\ComponentTranslation\LanguageFileDirectory;
use ILIAS\Language\ComponentTranslation\ComponentLanguageFileDirectory;

class Component implements Component\Component
{
public function init(
Expand Down Expand Up @@ -53,5 +56,9 @@ public function init(

$internal[Component\Resource\PublicAssetManager::class] = static fn() =>
new Component\Resource\PublicAssetManager();
$contribute[LanguageFileDirectory::class] = fn() => new ComponentLanguageFileDirectory(
$this,
'cmps'
);
}
}
228 changes: 228 additions & 0 deletions components/ILIAS/Component/lang/cmps.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
msgid ""
msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
"MIME-Version: 1.0\n"
"X-Domain: cmps\n"

msgid "cmps_activate"
msgstr ""

msgid "cmps_active"
msgstr ""

msgid "cmps_add_new_rank"
msgstr ""

msgid "cmps_available"
msgstr ""

msgid "cmps_available_version"
msgstr ""

msgid "cmps_basic_files"
msgstr ""

msgid "cmps_class_file"
msgstr ""

msgid "cmps_component"
msgstr ""

msgid "cmps_configure"
msgstr ""

msgid "cmps_current_db_version"
msgstr ""

msgid "cmps_current_version"
msgstr ""

msgid "cmps_database"
msgstr ""

msgid "cmps_db_update"
msgstr ""

msgid "cmps_deactivate"
msgstr ""

msgid "cmps_detailed_information"
msgstr ""

msgid "cmps_dir"
msgstr ""

msgid "cmps_disable_creation"
msgstr ""

msgid "cmps_enable_creation"
msgstr ""

msgid "cmps_file_version"
msgstr ""

msgid "cmps_group"
msgstr ""

msgid "cmps_id"
msgstr ""

msgid "cmps_ilias_max_version"
msgstr ""

msgid "cmps_ilias_min_version"
msgstr ""

msgid "cmps_inactive"
msgstr ""

msgid "cmps_install"
msgstr ""

msgid "cmps_is_active"
msgstr ""

msgid "cmps_is_installed"
msgstr ""

msgid "cmps_lang_files"
msgstr ""

msgid "cmps_lang_prefix"
msgstr ""

msgid "cmps_languages"
msgstr ""

msgid "cmps_main_dir"
msgstr ""

msgid "cmps_missing"
msgstr ""

msgid "cmps_module"
msgstr ""

msgid "cmps_must_installed"
msgstr ""

msgid "cmps_name"
msgstr ""

msgid "cmps_needs_matching_ilias_version"
msgstr ""

msgid "cmps_needs_newer_ilias_version"
msgstr ""

msgid "cmps_needs_newer_plugin_version"
msgstr ""

msgid "cmps_needs_update"
msgstr ""

msgid "cmps_needs_upgrade"
msgstr ""

msgid "cmps_no_db_update_file_available"
msgstr ""

msgid "cmps_no_language_file_available"
msgstr ""

msgid "cmps_plugin"
msgstr ""

msgid "cmps_plugin_activated"
msgstr ""

msgid "cmps_plugin_db_prefixes"
msgstr ""

msgid "cmps_plugin_deactivated"
msgstr ""

msgid "cmps_plugin_deinstalled"
msgstr ""

msgid "cmps_plugin_file"
msgstr ""

msgid "cmps_plugin_lang_prefixes"
msgstr ""

msgid "cmps_plugin_slot"
msgstr ""

msgid "cmps_plugin_uninstalled"
msgstr ""

msgid "cmps_plugin_updated"
msgstr ""

msgid "cmps_plugins"
msgstr ""

msgid "cmps_refresh"
msgstr ""

msgid "cmps_refresh_lng"
msgstr ""

msgid "cmps_rep_object"
msgstr ""

msgid "cmps_repository_object_types"
msgstr ""

msgid "cmps_responsible"
msgstr ""

msgid "cmps_responsible_mail"
msgstr ""

msgid "cmps_save_options"
msgstr ""

msgid "cmps_service"
msgstr ""

msgid "cmps_show_details"
msgstr ""

msgid "cmps_slots"
msgstr ""

msgid "cmps_status"
msgstr ""

msgid "cmps_supports_cli_setup"
msgstr ""

msgid "cmps_supports_export"
msgstr ""

msgid "cmps_supports_learning_progress"
msgstr ""

msgid "cmps_uninstall"
msgstr ""

msgid "cmps_uninstall_confirm"
msgstr ""

msgid "cmps_uninstall_inactive_confirm"
msgstr ""

msgid "cmps_update"
msgstr ""

msgid "cmps_version"
msgstr ""

msgid "database_is_uptodate"
msgstr ""

msgid "no_changes"
msgstr ""
Loading
Loading