mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
Merge pull request #12923 from opf/packaging/47354-ask-default-language-setting-in-packaged-installation
Packaging/47354 ask default language setting in packaged installation
This commit is contained in:
+19
-1
@@ -40,11 +40,26 @@ input_protocol_params() {
|
||||
|
||||
input_admin_mail() {
|
||||
if wiz_get "smtp/admin_email" &>/dev/null ; then
|
||||
STATE="done"
|
||||
STATE="input_default_language"
|
||||
return
|
||||
fi
|
||||
|
||||
wiz_put "openproject/admin_email"
|
||||
if wiz_ask ; then
|
||||
STATE="input_default_language"
|
||||
else
|
||||
STATE="start"
|
||||
fi
|
||||
}
|
||||
|
||||
input_default_language() {
|
||||
# if legacy existing install, or when reconfiguring an existing install, we do not ask for default language again
|
||||
if ${APP_NAME} config:get HOST &>/dev/null ; then
|
||||
STATE="done"
|
||||
return
|
||||
fi
|
||||
|
||||
wiz_put "openproject/default_language"
|
||||
if wiz_ask ; then
|
||||
STATE="done"
|
||||
else
|
||||
@@ -66,6 +81,9 @@ state_machine() {
|
||||
"input_admin_mail")
|
||||
input_admin_mail
|
||||
;;
|
||||
"input_default_language")
|
||||
input_default_language
|
||||
;;
|
||||
"done")
|
||||
echo "DONE"
|
||||
exit 0
|
||||
|
||||
@@ -10,6 +10,10 @@ CLI="${APP_NAME}"
|
||||
ADMIN_EMAIL="$(wiz_get "openproject/admin_email" || wiz_get "smtp/admin_email")"
|
||||
${CLI} config:set RECOMPILE_RAILS_ASSETS="true"
|
||||
|
||||
# Set the configured default language
|
||||
# Will be unset at installation postinstall before restart to ensure the setting is writable
|
||||
${CLI} config:set OPENPROJECT_DEFAULT_LANGUAGE="$(wiz_get "openproject/default_language")"
|
||||
|
||||
# Check for custom gems
|
||||
custom_gemfile=$(${CLI} config:get CUSTOM_PLUGIN_GEMFILE || echo "")
|
||||
if [ -n "$custom_gemfile" ] && [ -f "$custom_gemfile" ]; then
|
||||
@@ -103,8 +107,8 @@ ${CLI} run rake "packager:before_postinstall"
|
||||
# Use the OpenProject internal setup in one environment task
|
||||
${CLI} run rake "${rake_commands} packager:postinstall"
|
||||
|
||||
# For some reason RHEL8 creates files with chmod 0600
|
||||
find "${APP_HOME}/public" -type f -exec chmod 0644 {} \;
|
||||
# For some reason RHEL8 creates files with chmod 0600
|
||||
find "${APP_HOME}/public" -type f -exec chmod 0644 {} \;
|
||||
|
||||
# Allow OpenProject to perform custom initialization steps in the context of this installer
|
||||
if [ -e "${APP_HOME}/packaging/scripts/postinstall" ]; then
|
||||
|
||||
@@ -19,3 +19,11 @@ Type: string
|
||||
Default: admin@example.net
|
||||
Description: Your email address for the admin account:
|
||||
Enter the email address to be used for first admin account.
|
||||
|
||||
Template: openproject/default_language
|
||||
Type: select
|
||||
Choices: af, ar, az, be, bg, ca, ckb-IR, cs, da, de, el, en, eo, es, et, eu, fa, fi, fil, fr, he, hi, hr, hu, id, it, ja, ka, ko, lt, lv, mn, ne, nl, no, pl, pt, ro, ru, rw, si, sk, sl, sr, sv, th, tr, uk, vi, zh-CN, zh-TW
|
||||
Translations: Afrikaans, العربية, Azərbaycan, Беларуская, Български, Català, کوردیی ناوەندی, Čeština, Dansk, Deutsch, Ελληνικά, English, Esperanto, Español, Eesti, Euskara, فارسی, Suomi, Filipino, Français, עברית, हिन्दी, Hrvatski, Magyar, Indonesia, Italiano, 日本語, ქართული, 한국어, Lietuvių, Latviešu, Монгол, नेपाली, Nederlands, Norsk, Polski, Português, Română, Русский, Kinyarwanda, සිංහල, Slovenčina, Slovenščina, Српски, Svenska, ไทย, Türkçe, Українська, Tiếng việt, 简体中文, 繁体中文
|
||||
Default: en
|
||||
Description: Default language of OpenProject:
|
||||
Choose the language to use by default when accessing your OpenProject instance.
|
||||
|
||||
@@ -41,3 +41,6 @@ ${CLI} config:unset SMTP_PORT
|
||||
${CLI} config:unset SMTP_USERNAME
|
||||
${CLI} config:unset SMTP_PASSWORD
|
||||
${CLI} config:unset SMTP_DOMAIN
|
||||
|
||||
# Same for default language
|
||||
${CLI} config:unset OPENPROJECT_DEFAULT_LANGUAGE
|
||||
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
# Outputs the Choices and Translations lines for openproject/default_language
|
||||
# select option in packager installation.
|
||||
#
|
||||
# The template is located at packaging/addons/openproject/templates
|
||||
|
||||
require 'pathname'
|
||||
require 'yaml'
|
||||
|
||||
class App
|
||||
class << self
|
||||
def rails_root
|
||||
@rails_root ||=
|
||||
Pathname.new(__dir__)
|
||||
.ascend
|
||||
.find { |dir| dir.join('Gemfile').exist? }
|
||||
.tap { |dir| raise "Unable to find Rails root directory (looking up from #{__dir__})" if dir.nil? }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class PrintPackagerLanguagesChoices
|
||||
class << self
|
||||
def call
|
||||
languages_codes, languages_names = languages_codes_and_names
|
||||
puts "Choices: #{languages_codes.join(', ')}"
|
||||
puts "Translations: #{languages_names.join(', ')}"
|
||||
puts
|
||||
puts "Now update packaging/addons/openproject/templates with these two lines"
|
||||
end
|
||||
|
||||
def languages_codes_and_names
|
||||
translations_files
|
||||
.flat_map { |f| language_code_and_name_from(f) }
|
||||
.sort
|
||||
.transpose
|
||||
end
|
||||
|
||||
def translations_files
|
||||
App.rails_root.glob('config/locales/generated/*.yml')
|
||||
end
|
||||
|
||||
def language_code_and_name_from(translation_file)
|
||||
YAML.load_file(translation_file.to_s)
|
||||
.map { |(lang, data)| [lang, data.dig('cldr', 'language_name')] }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
PrintPackagerLanguagesChoices.call
|
||||
Reference in New Issue
Block a user