Кажется, это строки ISO-времени ISO8601: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations
Итак, на Delphi XE 6 и позже вы можете использовать соответствующая функция преобразования: ISO8601ToDate
http://docwiki.embarcadero.com/Libraries/XE8/en/System.DateUtils.ISO8601ToDate
Но если вы используете более старую версию Delphi, тогда вы можете использовать функцию XMLTimeToDateTime в модуле XSBuiltIns для этого преобразования (доступного с Delphi 6).
http://docwiki.embarcadero.com/ Библиотеки / Токио / о / Soap.XSBuiltIns.XMLTimeToDateTime
Ссылка на документ здесь: https://apidock.com/rails/v3.2.8/ActionView/Helpers/FormOptionsHelper/options_for_select
options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
<option value="$20">Basic</option>\n<option value="$40" selected="selected">Plus</option>
Предположим, в вашем файле локали названия языков следующие:
en:
languages:
en: 'English'
de: 'German'
ga: 'Irish'
fr: 'French'
Я думаю, что вам нужно что-то вроде следующего:
f.select :language, options_for_select(
LanguageName::LANGUAGES.map { |lang| [t("languages.#{lang}"), lang] }.to_h
f.object.language || t('languages.fr')
)
Конечно, всегда лучше извлечь метод из в вспомогательный файл:
class ApplicationHelper
def map_locale_names(locale)
LanguageName::LANGUAGES.map { |lang| [t("languages.#{lang}", locale: locale), lang] }.to_h
end
end
, чтобы ваш метод стал следующим:
f.select :language, options_for_select(
map_locale_names(locale: params[:locale]),
f.object.language || t('languages.fr')
)
Надеюсь, это поможет.