mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-17 08:36:38 +00:00
Merge branch 'issue-10022' into 'rails'
feat: al crear un sitio configurarlo con el idioma de le usuarie #10022 See merge request sutty/sutty!122
This commit is contained in:
commit
ab0f8af4ff
3 changed files with 23 additions and 5 deletions
|
@ -179,10 +179,20 @@ class Site < ApplicationRecord
|
||||||
# Siempre tiene que tener algo porque las traducciones están
|
# Siempre tiene que tener algo porque las traducciones están
|
||||||
# incorporadas a los sitios de Sutty, aunque les usuaries no traduzcan
|
# incorporadas a los sitios de Sutty, aunque les usuaries no traduzcan
|
||||||
# sus sitios.
|
# sus sitios.
|
||||||
|
#
|
||||||
|
# @return [Array]
|
||||||
def locales
|
def locales
|
||||||
@locales ||= config.fetch('locales', I18n.available_locales).map(&:to_sym)
|
@locales ||= config.fetch('locales', I18n.available_locales).map(&:to_sym)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Modificar los locales disponibles
|
||||||
|
#
|
||||||
|
# @param :new_locales [Array]
|
||||||
|
# @return [Array]
|
||||||
|
def locales=(new_locales)
|
||||||
|
@locales = new_locales.map(&:to_sym).uniq
|
||||||
|
end
|
||||||
|
|
||||||
# Similar a site.i18n en jekyll-locales
|
# Similar a site.i18n en jekyll-locales
|
||||||
#
|
#
|
||||||
# @return [Hash]
|
# @return [Hash]
|
||||||
|
@ -484,6 +494,7 @@ class Site < ApplicationRecord
|
||||||
config.title = title
|
config.title = title
|
||||||
config.url = url(slash: false)
|
config.url = url(slash: false)
|
||||||
config.hostname = hostname
|
config.hostname = hostname
|
||||||
|
config.locales = locales.map(&:to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Valida si el sitio tiene al menos una forma de alojamiento asociada
|
# Valida si el sitio tiene al menos una forma de alojamiento asociada
|
||||||
|
|
|
@ -33,11 +33,11 @@ class Site
|
||||||
def write
|
def write
|
||||||
return if persisted?
|
return if persisted?
|
||||||
|
|
||||||
@saved = Site::Writer.new(site: site, file: path,
|
@saved = Site::Writer.new(site: site, file: path, content: content.to_yaml).save.tap do |result|
|
||||||
content: content.to_yaml).save
|
|
||||||
# Actualizar el hash para no escribir dos veces
|
# Actualizar el hash para no escribir dos veces
|
||||||
@hash = content.hash
|
@hash = content.hash
|
||||||
end
|
end
|
||||||
|
end
|
||||||
alias save write
|
alias save write
|
||||||
|
|
||||||
# Detecta si la configuración cambió comparando con el valor inicial
|
# Detecta si la configuración cambió comparando con el valor inicial
|
||||||
|
|
|
@ -11,7 +11,14 @@ SiteService = Struct.new(:site, :usuarie, :params, keyword_init: true) do
|
||||||
add_role temporal: false, rol: 'usuarie'
|
add_role temporal: false, rol: 'usuarie'
|
||||||
sync_nodes
|
sync_nodes
|
||||||
|
|
||||||
I18n.with_locale(usuarie&.lang&.to_sym || I18n.default_locale) do
|
I18n.with_locale(usuarie.lang.to_sym || I18n.default_locale) do
|
||||||
|
# No se puede llamar a site.config antes de save porque el sitio
|
||||||
|
# todavía no existe.
|
||||||
|
#
|
||||||
|
# TODO: hacer que el repositorio se cree cuando es necesario, para
|
||||||
|
# que no haya estados intermedios.
|
||||||
|
site.locales = [usuarie.lang] + I18n.available_locales
|
||||||
|
|
||||||
site.save &&
|
site.save &&
|
||||||
site.config.write &&
|
site.config.write &&
|
||||||
commit_config(action: :create)
|
commit_config(action: :create)
|
||||||
|
|
Loading…
Reference in a new issue