office-gobmx/extras/CustomTarget_templates.mk
Kevin Suo 5da75fcb40 Templates: tdf#86483: Add "Localization" category and add a template for zh_CN
This patch adds a new template category named "Localization", to be used for
templates created by our l10n team for each locale, so that languages which
requires special layout or formatting (such as CJK or CTL) can have their own
templates bundled by default.

This patch aslo adds a (general purpose) Writer template for the Simplified
Chinese language. Chinese language, by convention, need to format the
document to have the first line of the paragraph be indented by 2 characters.
The font size, line spacing, paragraph margin etc also need special treatment.
If the Chinese users start writing using the current default Writer template,
they need to adjust the style formatting every time to meet their needs.
Although this template can be provided as an "extension" on the extension
website, in practice very few people will go to the extension website and
look for such templates.

Such bundled templates can also be added by other l10n teams. The
extras/README.md will be updated in a separate patch to include documentation
on how to add such templates and have their template names translatable on
weblate.

This does not completely resolve the issue in tdf#86483, which requests to
"Implement different default templates per locale". However, with this patch,
we are a step closer to set a choosen template when the user switch to a
certain UI.

Change-Id: Ic295482354f343e981eb20908907bd6a945b7120
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140802
Tested-by: Jenkins
Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
2022-11-04 21:29:33 +01:00

107 lines
5.5 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates))
# # for OTT templates: mimetype, styles.xml, META-INF/manifest.xml and
# Thumbnails/thumbnail.png files are automatically added for each template
# # for OTG templates: mimetype, content.xml, styles.xml, META-INF/manifest.xml and
# Thumbnails/thumbnail.png files are automatically added for each template
# list of meta.xml files (one per template) + other files (content.xml, manifest.rdf, settings.xml, pictures...)
extras_TEMPLATES_XMLFILES := \
officorr/Modern_business_letter_sans_serif/meta.xml \
officorr/Modern_business_letter_serif/meta.xml \
offimisc/Businesscard-with-logo/meta.xml \
personal/CV/meta.xml \
personal/Resume1page/meta.xml \
styles/Default/meta.xml \
styles/Modern/meta.xml \
styles/Simple/meta.xml \
officorr/Modern_business_letter_sans_serif/content.xml \
officorr/Modern_business_letter_serif/content.xml \
offimisc/Businesscard-with-logo/content.xml \
personal/CV/content.xml \
personal/Resume1page/content.xml \
officorr/Modern_business_letter_sans_serif/manifest.rdf \
officorr/Modern_business_letter_serif/manifest.rdf \
offimisc/Businesscard-with-logo/manifest.rdf \
personal/CV/manifest.rdf \
personal/Resume1page/manifest.rdf \
offimisc/Businesscard-with-logo/settings.xml \
offimisc/Businesscard-with-logo/Pictures/10000201000001F4000000A0108F3F06.png \
draw/bpmn/meta.xml \
l10n/zh_CN_ott_normal/meta.xml \
l10n/zh_CN_ott_normal/content.xml \
# param: style-base (e.g. Modern)
extras_TEMPLATES_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter $(1)/%,$(extras_TEMPLATES_XMLFILES)))
.SECONDEXPANSION:
# secondexpansion since the patterns not just cover a filename portion, but also include a
# directory portion with different number of elements
# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
$(call gb_CustomTarget_get_workdir,extras/source/templates)/% : $(SRCDIR)/extras/source/templates/% \
| $$(dir $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*).dir
$(call gb_Output_announce,templates/$*,$(true),CPY,1)
$(call gb_Trace_StartRange,templates/$*,CPY)
cp $< $@
$(call gb_Trace_EndRange,templates/$*,CPY)
# test and copy xml files
$(call gb_CustomTarget_get_workdir,extras/source/templates)/%.xml : $(SRCDIR)/extras/source/templates/%.xml \
| $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
$$(dir $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*.xml).dir
$(call gb_Output_announce,templates/$*.xml,$(true),XSL,1)
$(call gb_Trace_StartRange,templates/$*.xml,XSL)
$(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ $(SRCDIR)/extras/util/compact.xsl $<
$(call gb_Trace_EndRange,templates/$*.xml,XSL)
# zip files to OTT
$(call gb_CustomTarget_get_workdir,extras/source/templates)/%.ott : \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
mimetype $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
styles.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
META-INF/manifest.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
Thumbnails/thumbnail.png $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) )
$(call gb_Output_announce,templates/$*.ott,$(true),ZIP,2)
$(call gb_Trace_StartRange,templates/$*.ott,ZIP)
$(call gb_Helper_abbreviate_dirs,\
cd $(dir $<) && \
zip -q0X --filesync --must-match $@ mimetype && \
zip -qrX --must-match $@ styles.xml META-INF/manifest.xml Thumbnails/thumbnail.png && \
zip -qrX --must-match $@ $(call extras_TEMPLATES_XMLFILES_RELATIVE,$*) \
)
$(call gb_Trace_EndRange,templates/$*.ott,ZIP)
# zip files to OTG
$(call gb_CustomTarget_get_workdir,extras/source/templates)/%.otg : \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
mimetype $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
content.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
styles.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
META-INF/manifest.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
$$(addprefix $(call gb_CustomTarget_get_workdir,extras/source/templates)/$$*/,\
Thumbnails/thumbnail.png $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) )
$(call gb_Output_announce,templates/$*.otg,$(true),ZIP,2)
$(call gb_Trace_StartRange,templates/$*.otg,ZIP)
$(call gb_Helper_abbreviate_dirs,\
cd $(dir $<) && \
zip -q0X --filesync --must-match $@ mimetype && \
zip -qrX --must-match $@ content.xml styles.xml META-INF/manifest.xml Thumbnails/thumbnail.png && \
zip -qrX --must-match $@ $(call extras_TEMPLATES_XMLFILES_RELATIVE,$*) \
)
$(call gb_Trace_EndRange,templates/$*.otg,ZIP)
# vim: set noet sw=4 ts=4: