Dictionary Structure

From MSX - Wiki
Revision as of 16:14, 23 April 2021 by Benzac (talk | contribs)
Jump to navigation Jump to search

A dictionary can be used to translate the application user interface. It is set as URL in the menu or content data. The dictionary data must contain a name property (of type string), a version property (of type string), and a properties property (of type object). Each property is a key-value pair of type string. The currently used dictionary is displayed in the about panel of the Media Station X application.

Note: The dictionary is only used if the menu/content data is loaded at startup. If the dictionary only contains parts of the application user interface, the default values are used for the missing entries. For the dictionary support, version 0.1.120 or higher is needed.

Template[edit]

{
    "name": "English",
    "version": "1.0.8",
    "properties": {        
        "format:date": "mm/dd/yy",
        "format:day": "D mm/dd",
        "format:full_day": "DD, MM d, yyyy",
        "format:long_date": "MM d, yyyy",
        "format:long_day": "D mm/dd/yyyy",
        "format:long_time": "h:mm:ss/ampm",
        "format:separator": ", ",
        "format:time": "h:mm/ampm",
        "label:about": "About",
        "label:animations": "Animations",
        "label:application": "Application",
        "label:apply": "Apply",
        "label:audio": "Audio",
        "label:auto": "Auto",
        "label:auto_and_fixed": "Auto & Fixed",
        "label:cancel": "Cancel",
        "label:clear": "Clear",
        "label:click_and_swipe": "Click & Swipe",
        "label:client": "Client",
        "label:code": "Code",
        "label:complete_start_parameter": "Complete Start Parameter",
        "label:complex": "Complex",
        "label:config_error": "Config Error",
        "label:config_not_available": "Config Not Available",
        "label:contact": "Contact",
        "label:content_guide": "Content Guide",
        "label:content_info": "Content Info",
        "label:content_not_available": "Content Not Available",
        "label:content_server": "Content Server",
        "label:continue": "Continue",
        "label:copyright": "Copyright",
        "label:current_time": "Current Time",
        "label:custom": "Custom",
        "label:data_load_error": "Data Load Error",
        "label:debug": "Debug",
        "label:default": "Default",
        "label:detected": "Detected",
        "label:detected_and_fixed": "Detected & Fixed",
        "label:device": "Device",
        "label:dictionary": "Dictionary",
        "label:drag_and_drop": "Drag & Drop",
        "label:enter_code": "Enter Code",
        "label:error": "{ico:msx-red:error} Error",
        "label:exit": "Exit",
        "label:extended_information": "Extended Information",
        "label:fast": "Fast",
        "label:fixed": "Fixed",
        "label:framework": "Framework",
        "label:fullscreen": "Fullscreen",
        "label:home": "Home",
        "label:host_server": "Host Server",
        "label:hover_effect": "Hover Effect",
        "label:http_server": "HTTP Server",
        "label:info": "{ico:msx-blue:info} Info",
        "label:input_type": "Input Type",
        "label:layout": "Layout",
        "label:leave": "Leave",
        "label:link_validation": "Link Validation",
        "label:load_error": "Load Error",
        "label:log": "Log",
        "label:menu": "Menu",
        "label:menu_button": "Menu Button",
        "label:menu_not_available": "Menu Not Available",
        "label:minimalistic": "Minimalistic",
        "label:name": "Name",
        "label:navigation_frame": "Navigation Frame",
        "label:no": "No",
        "label:none": "None",
        "label:normal": "Normal",
        "label:not_available": "Not Available",
        "label:not_fixed": "Not Fixed",
        "label:off": "Off",
        "label:ok": "OK",
        "label:on": "On",
        "label:options": "Options",
        "label:parameter": "Parameter",
        "label:platform": "Platform",
        "label:platform_options": "Platform Options",
        "label:player": "Player",
        "label:random_playback": "Random Playback",
        "label:reload": "Reload",
        "label:remote_control": "Remote Control",
        "label:remote_only": "Remote Only",
        "label:reset": "Reset",
        "label:reset_settings": "Reset Settings",
        "label:reset_start_parameter": "Reset Start Parameter",
        "label:restart": "Restart",
        "label:scale": "Scale Factor",
        "label:settings": "Settings",
        "label:setup": "Setup",
        "label:setup_start_parameter": "Setup Start Parameter",
        "label:slideshow_interval": "Slideshow Interval",
        "label:slow": "Slow",
        "label:start_data_not_available": "Start Data Not Available",
        "label:start_error": "Start Error",
        "label:start_parameter": "Start Parameter",
        "label:success": "{ico:msx-green:check-circle} Success",
        "label:transformations": "Transformations",
        "label:tv_control": "TV Control",
        "label:unknown": "Unknown",
        "label:url_parameters": "URL Parameters",
        "label:user_agent": "User Agent",
        "label:validate_links": "Validate Links",
        "label:version": "Version",
        "label:very_fast": "Very Fast",
        "label:very_slow": "Very Slow",
        "label:video": "Video",
        "label:video_speed": "Playback Speed",
        "label:volume": "Volume",
        "label:warning": "{ico:msx-yellow:warning} Warning",
        "label:web": "Web",
        "label:welcome": "Welcome Pages",
        "label:yes": "Yes",
        "label:zoom": "Zoom Factor",
        "list:day_long_names": "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",
        "list:day_names": "Son,Mon,Tue,Wed,Thu,Fri,Sat",
        "list:month_long_names": "January,February,March,April,May,June,July,August,September,October,November,December",
        "list:month_names": "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
        "message:action_error_1": "Execution error: Code is invalid.",
        "message:action_error_2": "Execution error: Action is missing or empty.",
        "message:action_not_available": "No action available.",
        "message:action_not_available_for_platform": "The current platform does not support this action.",
        "message:action_warning_1": "Skip action '{ACTION}', because max action call stack has been reached.",
        "message:action_warning_2": "Unknown action: '{ACTION}'.",
        "message:action_warning_3": "Live action is invalid in this context.",
        "message:action_warning_4": "Invalid data action: Data is missing.",
        "message:action_warning_5": "Invalid data action: Actions are missing.",
        "message:action_warning_6": "Unknown logger action: '{ACTION}'.",
        "message:action_warning_7": "Invalid trigger action: '{ACTION}'.",
        "message:action_warning_8": "Unknown system action: '{ACTION}'.",
        "message:action_warning_9": "Unknown history action: '{ACTION}'.",
        "message:action_warning_10": "Unknown settings action: '{ACTION}'.",
        "message:action_warning_11": "Unknown volume action: '{ACTION}'.",
        "message:action_warning_12": "Unknown player action: '{ACTION}'.",
        "message:action_warning_13": "Unknown player progress action: '{ACTION}'.",
        "message:action_warning_14": "Unknown player label action: '{ACTION}'.",
        "message:action_warning_15": "Unknown player commit action: '{ACTION}'.",
        "message:action_warning_16": "Unknown player speed action: '{ACTION}'.",
        "message:action_warning_17": "Unknown busy action: '{ACTION}'.",
        "message:action_warning_18": "Unknown invalidate action: '{ACTION}'.",
        "message:action_warning_19": "Unknown update action: '{ACTION}'.",
        "message:action_warning_20": "Unknown reload action: '{ACTION}'.",
        "message:action_warning_21": "Unknown resume action: '{ACTION}'.",
        "message:action_warning_22": "Unknown ticking action: '{ACTION}'.",
        "message:action_warning_23": "Unknown release action: '{ACTION}'.",
        "message:action_warning_24": "Unknown time action: '{ACTION}'.",
        "message:action_warning_25": "Unknown slider action: '{ACTION}'.",
        "message:action_warning_26": "Unknown slider labels action: '{ACTION}'.",
        "message:action_warning_27": "Unknown interaction action: '{ACTION}'.",
        "message:action_warning_28": "Unknown interaction commit action: '{ACTION}'.",
        "message:action_warning_29": "Unknown log action: '{ACTION}'.",
        "message:action_warning_30": "Unknown player button action: '{ACTION}'.",
        "message:action_warning_31": "Invalid player button action: '{ACTION}'.",
        "message:action_warning_32": "Unknown player video action: '{ACTION}'.",
        "message:action_warning_33": "Unknown player info action: '{ACTION}'.",
        "message:action_warning_34": "Invalid delay action: '{ACTION}'.",
        "message:animate_info": "The type of animations. {dic:submessage:performance_info} {dic:submessage:preset_recommended}",
        "message:animate_set": "Animations has been set to: {txt:msx-white:{ANIMATE}}.",
        "message:animate_set_error": "Set animations failed: Invalid value: {txt:msx-white:'{ANIMATE}'}.",
        "message:audio_not_available": "Audio is not available.",
        "message:audio_url_missing": "Audio URL is missing.",
        "message:complete_start_parameter_info": "Start parameter successfully loaded. Do you want to set it up and reload the application?",
        "message:config_error_1": "Invalid config data.",
        "message:config_error_2": "Missing config data.",
        "message:content_missing": "Content is missing.",
        "message:content_not_available": "No content available.",
        "message:content_warning_1": "Maximum page offset reached: {POSITION}.",
        "message:content_warning_2": "{ITEM}[{REF}] ID is already registered: '{ID}'.",
        "message:content_warning_3": "{ITEM}[{REF}] ID is invalid: '{ID}'.",
        "message:content_warning_4": "{ITEM}[{REF}] type is invalid: '{TYPE}': For the overlay/underlay page, only items of type 'space' are allowed.",
        "message:content_warning_5": "{ITEM}[{REF}] layout is invalid: '{LAYOUT}': Position is already registered.",
        "message:content_warning_6": "{ITEM}[{REF}] layout is invalid: '{LAYOUT}': Values are out of range.",
        "message:content_warning_7": "{ITEM}[{REF}] layout is invalid: '{LAYOUT}': Some values are invalid.",
        "message:content_warning_8": "{ITEM}[{REF}] layout is invalid: '{LAYOUT}'.",
        "message:content_warning_9": "{ITEM}[{REF}] layout is missing.",
        "message:content_warning_10": "Page[{PAGE_INDEX}] has no selectable items.",
        "message:content_warning_11": "Content has no selectable items.",
        "message:data_load_error": "Data could not be loaded.",
        "message:dialog_warning": "Unknown dialog: '{DIALOG}'.",
        "message:exit_info": "Do you want to exit the application?",
        "message:feature_not_available": "This feature is not yet available.",
        "message:hover_effect_info": "Indicates whether a hover effect should be used. If you control the application with a pointer device, this effect helps you to select items. You can ignore this settings if you control the application with a physical remote control or with touch.",
        "message:hover_effect_set": "Hover effect has been set to: {txt:msx-white:{HOVER_EFFECT}}.",
        "message:hover_effect_set_error": "Set hover effect failed: Invalid value: {txt:msx-white:'{HOVER_EFFECT}'}.",
        "message:image_list_missing": "Image list is missing.",
        "message:input_info": "The type of the on-screen input. If you control the application with a physical remote control, you can ignore this settings. {dic:submessage:reload_required}",
        "message:input_set": "Input type has been set to: {txt:msx-white:{INPUT}}.{br}{dic:submessage:reload_request}",
        "message:input_set_error": "Set input type failed: Invalid value: {txt:msx-white:'{INPUT}'}.",
        "message:interaction_commit_error": "Commit interaction data failed.",
        "message:interaction_commit_warning": "Commit interaction data is not possible, because no interaction plugin is loaded.",
        "message:interaction_error": "Invalid interaction URL: '{SOURCE}': URL must be a valid HTTP(S) URL.",
        "message:interaction_info": "No interaction plugin loaded, please load one to use interaction functions.",
        "message:key_warning_1": "Unknown key: '{KEY}'.",
        "message:key_warning_2": "Invalid key code: '{CODE}'.",
        "message:layout_info": "The resolution of the layout. {dic:submessage:performance_info} {dic:submessage:reload_required} {dic:submessage:preset_recommended}",
        "message:layout_set": "Layout has been set to: {txt:msx-white:{LAYOUT}}.{br}{dic:submessage:reload_request}",
        "message:layout_set_error": "Set layout failed: Invalid value: {txt:msx-white:'{LAYOUT}'}.",
        "message:leave_info": "Do you want to leave the application?",
        "message:live_action_not_available": "No live action available.",
        "message:menu_button_info": "The menu button is used to quickly access all major controls or additional options. By default, the menu {ico:msx-white:menu} and the blue {ico:msx-blue:stop} button is mapped to this function. Additionally, you can define an extra button here. Press {txt:msx-white:OK} to reset the entry.",
        "message:menu_button_set": "Menu button has been set to: {txt:msx-white:{MENU_BUTTON}}.",
        "message:menu_button_set_error_1": "Set menu button failed: Invalid action value: {txt:msx-white:'{MENU_BUTTON_ACTION}'}.",
        "message:menu_button_set_error_2": "Set menu button failed: Invalid key code value: {txt:msx-white:'{MENU_BUTTON_KEY_CODE}'}.",
        "message:menu_missing": "Menu is missing.",
        "message:menu_warning_1": "Maximum menu position reached: {POSITION}.",
        "message:menu_warning_2": "Menu item ID is already registered: '{ID}'.",
        "message:menu_warning_3": "Menu item ID is invalid: '{ID}'.",
        "message:menu_warning_4": "Menu has no selectable items.",
        "message:player_commit_error": "Commit player data failed.",
        "message:player_commit_warning": "Commit player data is not supported.",
        "message:player_error_1": "Video or audio file could not be played:{br}{CONTEXT}",
        "message:player_error_2": "Loading of video or audio file has been aborted:{br}{CONTEXT}",
        "message:player_error_3": "Video or audio file could not be played, because of network issues:{br}{CONTEXT}",
        "message:player_error_4": "An error has occured while playing the video or audio file:{br}{CONTEXT}",
        "message:player_error_5": "Video or audio file could not be played, because the source is not supported:{br}{CONTEXT}",
        "message:player_info_1": "No video or audio file loaded, please load one to open the player.",
        "message:player_info_2": "No video or audio file loaded, please load one to use player functions.",
        "message:playlist_empty": "Playlist is empty.",
        "message:playlist_missing": "Playlist is missing.",
        "message:random_playback_info": "Indicates whether playlist items are played in random order.",
        "message:random_playback_set": "Random playback has been set to: {txt:msx-white:{RANDOM_PLAYBACK}}.",
        "message:random_playback_set_error": "Set random playback failed: Invalid value: {txt:msx-white:'{RANDOM_PLAYBACK}'}.",
        "message:reload_info": "Do you want to reload the application?",
        "message:remote_info": "The type of the on-screen remote control. If you control the application with a physical remote control, you can ignore this settings. {dic:submessage:reload_required}",
        "message:remote_set": "Remote control has been set to: {txt:msx-white:{REMOTE}}.{br}{dic:submessage:reload_request}",
        "message:remote_set_error": "Set remote control failed: Invalid value: {txt:msx-white:'{REMOTE}'}.",
        "message:reset_settings_info": "Do you want to reset settings and reload the application?",
        "message:reset_start_parameter_info": "Do you want to reset the start parameter and reload the application?",
        "message:restart_info": "Do you want to restart the application?",
        "message:scale_info": "The scale factor of the layout. By default, this is detected automatically. Depending on the platform, the auto-detection may not work correctly. If the layout does not fit into the screen, you can set this factor to a fixed value. {dic:submessage:reload_required}",
        "message:scale_set": "Scale factor has been set to: {txt:msx-white:'{SCALE}'}.{br}{dic:submessage:reload_request}",
        "message:scale_set_error": "Set scale factor failed: Invalid value: {txt:msx-white:'{SCALE}'}.",
        "message:see_log": "Please see log for further details.",
        "message:setup_start_parameter_info": "Do you want to set up the following start parameter and reload the application?",
        "message:slider_info": "No slideshow loaded, please load one to use slider functions.",
        "message:slider_warning": "Image list has no visible items.",
        "message:slideshow_interval_info": "The time until the next image is changed in the slideshow.",
        "message:slideshow_interval_set": "Slideshow interval has been set to: {txt:msx-white:{SLIDESHOW_INTERVAL}}.",
        "message:slideshow_interval_set_error": "Set slideshow interval failed: Invalid value: {txt:msx-white:'{SLIDESHOW_INTERVAL}'}.",
        "message:start_parameter_error_1": "Invalid start parameter: '{PARAMETER}'.{br}Parameter must start with 'menu:' or 'content:'.",
        "message:start_parameter_error_2": "Invalid start parameter: '{PARAMETER}'.{br}Parameter must be a full string.",
        "message:start_parameter_error_3": "Missing start parameter.",
        "message:start_parameter_error_4": "Invalid start parameter name: '{NAME}'.{br}Start parameter name must be a full string.",
        "message:start_parameter_error_5": "Missing start parameter name.",
        "message:start_parameter_error_6": "Invalid start parameter version: '{VERSION}'.{br}Start parameter version must be a full string.",
        "message:start_parameter_error_7": "Missing start parameter version.",
        "message:start_parameter_error_8": "Missing start data.",
        "message:start_parameter_info": "The start parameter specifies which menu or content is loaded at startup. Once you have completed the start parameter setup, your content is loaded every time you start the application. For more information, please visit {txt:msx-white:http://msx.benzac.de/info/}.",
        "message:start_parameter_warning": "Start parameter must be loaded via HTTPS, because the application was loaded in a secure context.{br}Please set the security lock and try it again.",
        "message:start_parameter_welcome_info_1": "{ico:msx-blue:info} This start parameter is also set as welcome pages start action in the settings.",
        "message:start_parameter_welcome_info_2": "{ico:msx-blue:info} This start parameter is also set as welcome pages content in the settings.",
        "message:start_parameter_welcome_info_3": "{ico:msx-blue:info} The start parameter {col:msx-white}{NAME} {VERSION}{col} is also set as welcome pages start action in the settings.",
        "message:start_parameter_welcome_info_4": "{ico:msx-blue:info} The start parameter {col:msx-white}{NAME} {VERSION}{col} is also set as welcome pages content in the settings.",
        "message:template_warning_1": "Template area is invalid: '{AREA}': Values are out of range.",
        "message:template_warning_2": "Template area is invalid: '{AREA}': Some values are invalid.",
        "message:template_warning_3": "Template layout is invalid: '{LAYOUT}': Values are out of range.",
        "message:template_warning_4": "Template layout is invalid: '{LAYOUT}': Some values are invalid.",
        "message:template_warning_5": "Template layout is invalid: '{LAYOUT}'.",
        "message:template_warning_6": "Template layout is missing.",
        "message:time_success": "Time initialization completed.",
        "message:time_warning_1": "Unexpected timestamp difference: {DIFF}. A time offset is applied to fix this issue.",
        "message:time_warning_2": "Unexpected time zone: {CLIENT} != {SERVER}. A time zone offset is applied to fix this issue.",
        "message:transform_info": "The type of transformations. {dic:submessage:performance_info} {dic:submessage:reload_required} {dic:submessage:preset_recommended}",
        "message:transform_set": "Transformations has been set to: {txt:msx-white:{TRANSFORM}}.{br}{dic:submessage:reload_request}",
        "message:transform_set_error": "Set transformations failed: Invalid value: {txt:msx-white:'{TRANSFORM}'}.",
        "message:validate_link": "A link is opened. This can freeze the application, because not every link is suitable for each platform. Additionally, it may happen that it is not possible to return to the current page. Please validate the link and press continue if you want to open it.{br}{br}Link: {str:msx-white:{LINK}}",
        "message:validate_links_info": "Indicates whether links should be checked with a short validation panel. Opening links can freeze the application, because not every link is suitable for each platform. Additionally, it may happen that it is not possible to return to the current page. Therefore, it is recommended to validate links, before they are opened.",
        "message:validate_links_set": "Validate links has been set to: {txt:msx-white:{VALIDATE_LINKS}}.",
        "message:validate_links_set_error": "Set validate links failed: Invalid value: {txt:msx-white:'{VALIDATE_LINKS}'}.",
        "message:video_not_available": "Video is not available.",
        "message:video_url_missing": "Video URL is missing.",
        "message:zoom_info": "The zoom factor of the layout. By default, the resolution of the layout is set via the {txt:msx-white:Layout} settings and no additional zooming is performed. If the layout does not fit into the screen, you can set this factor to {txt:msx-white:Auto}. {dic:submessage:reload_required}",
        "message:zoom_set": "Zoom factor has been set to: {txt:msx-white:'{ZOOM}'}.{br}{dic:submessage:reload_request}",
        "message:zoom_set_error": "Set zoom factor failed: Invalid value: {txt:msx-white:'{ZOOM}'}.",
        "submessage:performance_info": "Depending on the platform, changing this value may increase or decrease the performance.",
        "submessage:preset_recommended": "It is recommended to keep the preset value.",
        "submessage:reload_request": "Please reload the application for the changes to take effect.",
        "submessage:reload_required": "A reload of the application is required, after this value has been changed.",
        "unit:am": " AM",
        "unit:day": " day",
        "unit:days": " days",
        "unit:hours": " hr",
        "unit:minutes": " min",
        "unit:pm": " PM",
        "unit:seconds": " sec"
    }
}