I've just pushed new source code for the developers that will support multiple languages via a "Language" menu
This is not 100% complete yet, but for those who would like to translate to another language, this is the data structure
The text in quotes e.g. "English" or "Battery" etc is the text that should be translated
Text like %s %d %c etc are special characters for substitution with other texts and numbers etc so should not be changed
The width of the screen is normally 16 characters, so menu names etc can not be longer than that.
Some texts need to be shorter e.g. "Rx only" as this is part of the Channel details screen.
I have not had time to work out the maximum length of every text, but if you look at the existing user interface it is not difficult to calculate how many characters will fit in each location.
Note 1. I have not yet translated some things on the Channel Details screen for CTCSS frequency, or the DMR Filtering settings
However it is probably 90% of the total texts used in the radio.
Note 2. The CPS screen messages are sent from the CPS and I will need to handle those by changes to the CPS.
Code: Select all
{
.LANGUAGE_NAME = "English",
.language = "Language",
.menu = "Menu",
.credits = "Credits",
.zone = "Zone",
.rssi = "RSSI",
.battery = "Battery",
.contacts = "Contacts",
.firmware_info = "Firmware info",
.last_heard = "Last heard",
.options = "Options",
.display_options = "Display options",
.channel_details = "Channel details",
.new_contact = "New contact",
.contact_list = "Contact list",
.hotspot_mode = "Hotspot mode",
.contact_details = "Contact Details",
.batteryVoltage = "%d.%dV",
.built = "Built",
.built = "Built",
.zones = "Zones",
.keypad_locked = "Keypad locked",
.press_blue_plus_star = "Press Blue +*",
.to_unlock = "to unlock",
.unlocked = "Unlocked",
.power_off = "Power Off...",
.error = "ERROR",
.rx_only = "Rx only",
.out_of_band = "OUT OF BAND",
.timeout = "TIMEOUT",
.tg_entry = "TG entry",
.pc_entry = "PC entry",
.user_dmr_id = "User DMR ID",
.contact = "Contact",
.displayRxFreq = "%d.%05d MHz",
.accept_call = "Accept call?",
.private_call = "Private call",
.squelch = "Squelch",
.vfoRxFreq = "%cR %d.%05d MHz",
.vfoTxFreq = "%cT %d.%05d MHz",
.vfoEnterFreq = "%c%c%c.%c%c%c%c%c MHz",
.quick_menu = "Quick Menu",
.filter = "Filter:%s",
.all_channels = "All Channels",
.gotoChannel = "Goto %d",
.scan = "Scan",
.channelToVfo = "Channel --> VFO",
.vfoToChannel = "VFO --> Channel",
.group = "Group",
.private = "Private",
.all = "All",
.type = "Type:",
.timeSlot = "Timeslot",
.none = "none",
.contact_saved = "Contact saved",
.duplicate = "Duplicate",
.tg = "TG",
.pc = "PC",
.ts = "TS",
.mode = "Mode",
.colour_code = "Color Code",
.n_a = "N/A",
.channelDetailsRx = "Rx:%d.%05dMHz",
.channelDetailsTx = "Tx:%d.%05dMHz",
.bandwidth = "Bandwidth",
.stepFreq = "Step:%d.%02dkHz",
.tot = "TOT",
.off = "Off",
.skip = "Skip",
.yes = "Yes",
.no = "No",
.rx_group = "Rx Grp",
};