Как настроить таргетинг на один языковой текст из нескольких ссылочных ключей - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь запрограммировать интерфейс к контроллеру отопителя дома, который управляет отопительными контурами 1 .. n;Пример: один контур для подогрева пола, один для радиаторов. Меню, в которых пользователь настраивает значения операций, выглядят одинаково, на самом деле текстовые строки описания часто буквально совпадают. Однако, поскольку они адресованы из разных меню, клавиши выбора отличаются. В C есть оператор #define и препроцессор, которые обеспечивают простую реализацию:
Текстовая ссылка, используемая в коде для схемы нагревателя № 1 menu1: STR1234
Текстовая ссылка, используемая в коде для схемы нагревателя № 2 menu2: STR2345
Почему бы мне просто не использовать одну и ту же символьную ссылку? Команды шины, которые управляют нагревателем, нумеруются последовательно в руководстве;команда для установки или запроса этого параметра схемы нагревателя № 1 - cmd1234 и cmd2345 для схемы нагревателя № 2. Использование имен текстовых ссылок, согласующихся с именами команд (и руководством), улучшает понимание кода.
В решении на C я использовал бы включаемый файл, который разрешает все эти символьные строковые ссылки в коде и возвращает соответствующее строковое значение вкод. Расширяя приведенный выше пример:
#define STR1234 STRCOMF_TEXT // схема комфортной температуры 1
#define STR2345 STRCOMF_TEXT // схема комфортной температуры 2
Обратите внимание, что теперь ДВЕ ссылки на символьный код указывают на ОДНУ целевой ключ текстовой строки. Кроме того, есть многоязычные текстовые файлы;ключ STRCOMF_TEXT можно найти в каждом из этих языковых текстовых файлов. Определение ключа / значения в текстовом файле на английском языке выглядит следующим образом:
#define STRCOMF_TEXT "Уставка комфортной температуры в помещении" // тот же текст для контуров 1 и 2
Всякий раз, когда код ссылается либо на STR1234, либо на STR2345, препроцессор Cпереводит его и выбирает ключ / = STRCOMF_TEXT / из одного из текстовых файлов языка. Это то, чего я хочу достичь с помощью ресурсов Java, но механизм, который позволяет нескольким ссылкам в коде указывать на один и тот же ключ в языковом файле (файлах), ускользает от меня. Любые указатели очень ценятся. Есть ли способ уговорить ResourcBundle и ResourceKeys нацелить один ключ из нескольких ссылок на разные коды?

Я расширил ссылки ключ / значение, но это делает абсолютно громоздкий список текстовых строк с дубликатами. Я просмотрел документацию ResourceBundle, но не увидел, где можно начать решать мою проблему.

...