qmake: Document Xcode behavior when bundling translation files
Xcode's legacy and new build system modes have different behavior in how they bundle resource paths that start with lang_code.lproj. Document how to bundle translation files for both legacy and new build systems. Fixes: QTBUG-98417 Change-Id: I857ec76577f8244a751d4bf38fbe305fef614734 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 94207621ee768ddedf0021aef99566a8ce90d22b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
12b1ec4b30
commit
2b8938edeb
@ -24,6 +24,8 @@ exampledirs = snippets
|
|||||||
|
|
||||||
tagfile = qmake.tags
|
tagfile = qmake.tags
|
||||||
|
|
||||||
|
macro.qtbug = "\\l{https://bugreports.qt.io/browse/\1}{\1}"
|
||||||
|
|
||||||
depends += \
|
depends += \
|
||||||
activeqt \
|
activeqt \
|
||||||
qt3d \
|
qt3d \
|
||||||
|
@ -944,3 +944,20 @@ win32-g++:contains(QMAKE_HOST.arch, x86_64):{
|
|||||||
...
|
...
|
||||||
}
|
}
|
||||||
#! [187]
|
#! [187]
|
||||||
|
|
||||||
|
#! [188]
|
||||||
|
translations_en.files = $$PWD/en.lproj/InfoPlist.strings
|
||||||
|
translations_en.path = en.lproj
|
||||||
|
QMAKE_BUNDLE_DATA += translations_en
|
||||||
|
#! [188]
|
||||||
|
|
||||||
|
#! [189]
|
||||||
|
# Approach 1
|
||||||
|
translations_en.files = $$PWD/InfoPlist.strings
|
||||||
|
translations_en.path = en.lproj
|
||||||
|
|
||||||
|
# Approach 2
|
||||||
|
translations_de.files = $$PWD/de.lproj/InfoPlist.strings
|
||||||
|
|
||||||
|
QMAKE_BUNDLE_DATA += translations_en translations_de
|
||||||
|
#! [189]
|
||||||
|
@ -1876,6 +1876,33 @@
|
|||||||
See \l{Platform Notes#Creating Frameworks}{Platform Notes} for
|
See \l{Platform Notes#Creating Frameworks}{Platform Notes} for
|
||||||
more information about creating library bundles.
|
more information about creating library bundles.
|
||||||
|
|
||||||
|
A project can also use this variable to bundle application translation
|
||||||
|
files. The exact syntax depends on whether the project is using Xcode's
|
||||||
|
legacy build system or its new build system.
|
||||||
|
|
||||||
|
For example when the following project snippet is built using the
|
||||||
|
legacy build system:
|
||||||
|
|
||||||
|
\snippet code/doc_src_qmake-manual.pro 188
|
||||||
|
|
||||||
|
Xcode will ignore the original location of \c InfoPlist.strings
|
||||||
|
and the file will placed into the bundle \c Resources directory
|
||||||
|
under the provided \c translations_en.path path, so
|
||||||
|
\c Resources/en.lproj/InfoPlist.strings
|
||||||
|
|
||||||
|
With the new build system, the relative location of the file is
|
||||||
|
preserved, which means the file will incorrectly be placed under
|
||||||
|
\c Resources/en.lproj/en.lproj/InfoPlist.strings
|
||||||
|
|
||||||
|
To ensure correct file placement, the project can either move
|
||||||
|
the original file not to be in a sub-directory or it can choose
|
||||||
|
not to specify the \c translations_en.path variable.
|
||||||
|
|
||||||
|
\snippet code/doc_src_qmake-manual.pro 189
|
||||||
|
|
||||||
|
See \qtbug QTBUG-98417 for more details on how the Xcode build
|
||||||
|
system changed its behavior in bundling translation files.
|
||||||
|
|
||||||
\section1 QMAKE_BUNDLE_EXTENSION
|
\section1 QMAKE_BUNDLE_EXTENSION
|
||||||
|
|
||||||
\note This variable is used on \macos, iOS, tvOS, and watchOS only.
|
\note This variable is used on \macos, iOS, tvOS, and watchOS only.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user