This project is not more than an idea at the moment. I try to convert AppGini in a multilingual app, following the model of OSCommerce.
I am developping a multilingual app with AppGini and try to make it multilingual in a seamless way, for all envolved: programmers, administrators and users. The model I have in mind is OSCommerce use of language specific files which hook into the base files for each page. AppGini has somethings similar with its files in the hook folder.
Just to make it clear, the generic texts for the App's user interface are largely translated, such as buttons. What is missing is a translation for the custom made fields. This is neither about automatic language detection. Solutions for this have already been provided.
AppGini Software: https://bigprof.com/appgini/ AppGini on Github: https://github.com/bigprof-software AppGini User Interface Localization: https://bigprof.com/appgini/help/localizing-appgini-applications AppGini Forum Discussions on Localization: https://forums.appgini.com/phpbb/viewtopic.php?t=4129 AppGini Forum Discussions on automatic language detection:https://forums.appgini.com/phpbb/viewtopic.php?t=3059
OSCommerce: https://www.oscommerce.com/Products&Download=oscom2341 OSCommerce on Github: https://github.com/osCommerce/oscommerce
OSCommerce uses a hook file for each base file in each language installed.
The hook file defines the translation following the model and is located at *\root\includes\languages\LANGUAGE_NAME*:
define('TABLE_FIELD', 'Table Filed Name in target Language');
In each base file it uses the following include that points to the specific language file related to the base file:
require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_ACCOUNT);
Wherever the field in the PHP outpout is used, it uses the following php echo (found at same path as AppGini at *\root*):
This requires certainly a file structure where all table names and field names are defined, named database_tables.php, in a specific file at *\root\includes*:
// define the database table names used in the project define('TABLE_NAME', 'table_name_in_target_language');
Further it requires a file structure where all file names are defined in a specific file, named filenames.php, at *\root\includes*:
// define the filenames used in the project define('FILENAME_ACCOUNT', 'account.php');