summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2022-02-02 00:36:19 +0100
committerGitHub <noreply@github.com>2022-02-02 00:36:19 +0100
commitfc5f84a0cd34d085c44a8fa28245883e47ef5bcf (patch)
tree5741da58e466e496f6319dc9c44390a5d1ed9b33 /scripts
parent2289f98c1ee5d32aba37f4d46f5a8a6cb2a52641 (diff)
parent519c227c4f4df81522e38b34e6a5ddfdb73f0def (diff)
downloadinvidious-fc5f84a0cd34d085c44a8fa28245883e47ef5bcf.tar.gz
invidious-fc5f84a0cd34d085c44a8fa28245883e47ef5bcf.tar.bz2
invidious-fc5f84a0cd34d085c44a8fa28245883e47ef5bcf.zip
Merge pull request #2827 from SamantazFox/more-code-cleanup
More code cleanup
Diffstat (limited to 'scripts')
-rw-r--r--scripts/git/pre-commit6
-rw-r--r--scripts/propagate-new-locale-keys.cr95
2 files changed, 0 insertions, 101 deletions
diff --git a/scripts/git/pre-commit b/scripts/git/pre-commit
index e4a27750..4460b670 100644
--- a/scripts/git/pre-commit
+++ b/scripts/git/pre-commit
@@ -15,9 +15,3 @@ if [ ! -z "$changed_cr_files" ]; then
git add $changed_cr_files
fi
-
-# Locale equalizer
-if [ ! -z $(git diff --name-only --cached -- locales/) ]; then
- crystal run scripts/propagate-new-locale-keys.cr
- git add locales > /dev/null
-fi \ No newline at end of file
diff --git a/scripts/propagate-new-locale-keys.cr b/scripts/propagate-new-locale-keys.cr
deleted file mode 100644
index 570b408a..00000000
--- a/scripts/propagate-new-locale-keys.cr
+++ /dev/null
@@ -1,95 +0,0 @@
-require "json"
-require "../src/invidious/helpers/i18n.cr"
-
-def locale_to_array(locale_name)
- arrayifed_locale_data = [] of Tuple(String, JSON::Any | String)
- keys_only_array = [] of String
- LOCALES[locale_name].each do |k, v|
- if v.as_h?
- arrayifed_locale_data << {k, JSON.parse(v.as_h.to_json)}
- elsif v.as_s?
- arrayifed_locale_data << {k, v.as_s}
- end
-
- keys_only_array << k
- end
-
- return arrayifed_locale_data, keys_only_array
-end
-
-# Invidious currently has some unloaded localization files. We shouldn't need to propagate new keys onto those.
-# We'll also remove the reference locale (english) from the list to process.
-loaded_locales = LOCALES.keys.select! { |key| key != "en-US" }
-english_locale, english_locale_keys = locale_to_array("en-US")
-
-# In order to automatically propagate locale keys we're going to be needing two arrays.
-# One is an array containing each locale data encoded as tuples. The other would contain
-# sets of only the keys of each locale files.
-#
-# The second array is to make sure that an key from the english reference file is present
-# in whatever the current locale we're scanning is.
-locale_list = [] of Array(Tuple(String, JSON::Any | String))
-locale_list_with_only_keys = [] of Array(String)
-
-# Populates the created arrays from above
-loaded_locales.each do |name|
- arrayifed_locale_data, keys_only_locale = locale_to_array(name)
-
- locale_list << arrayifed_locale_data
- locale_list_with_only_keys << keys_only_locale
-end
-
-# Propagate additions
-locale_list_with_only_keys.dup.each_with_index do |keys_of_locale_in_processing, index_of_locale_in_processing|
- insert_at = {} of Int32 => Tuple(String, JSON::Any | String)
-
- LOCALES["en-US"].each_with_index do |ref_locale_data, ref_locale_key_index|
- ref_locale_key, ref_locale_value = ref_locale_data
-
- # Found an new key that isn't present in the current locale..
- if !keys_of_locale_in_processing.includes? ref_locale_key
- # In terms of structure there's currently only two types; one for plural and the other for singular translations.
- if ref_locale_value.as_h?
- insert_at[ref_locale_key_index] = {ref_locale_key, JSON.parse({"([^.,0-9]|^)1([^.,0-9]|$)" => "", "" => ""}.to_json)}
- else
- insert_at[ref_locale_key_index] = {ref_locale_key, ""}
- end
- end
- end
-
- insert_at.each do |location_to_insert, data|
- locale_list_with_only_keys[index_of_locale_in_processing].insert(location_to_insert, data[0])
- locale_list[index_of_locale_in_processing].insert(location_to_insert, data)
- end
-end
-
-# Propagate removals
-locale_list_with_only_keys.dup.each_with_index do |keys_of_locale_in_processing, index_of_locale_in_processing|
- remove_at = [] of Int32
-
- keys_of_locale_in_processing.each_with_index do |current_key, current_key_index|
- if !english_locale_keys.includes? current_key
- remove_at << current_key_index
- end
- end
-
- remove_at.each do |index_to_remove_at|
- locale_list_with_only_keys[index_of_locale_in_processing].delete_at(index_to_remove_at)
- locale_list[index_of_locale_in_processing].delete_at(index_to_remove_at)
- end
-end
-
-# Now we convert back to our original format.
-final_locale_list = [] of String
-locale_list.each do |locale|
- intermediate_hash = {} of String => (JSON::Any | String)
- locale.each { |k, v| intermediate_hash[k] = v }
- final_locale_list << intermediate_hash.to_pretty_json(indent = " ")
-end
-
-locale_map = Hash.zip(loaded_locales, final_locale_list)
-
-# Export
-locale_map.each do |locale_name, locale_contents|
- File.write("locales/#{locale_name}.json", "#{locale_contents}\n")
-end