This file tracks the remaining work needed to finish, build, and test the Spanish translation of VNote in this fork:
- Original project: https://github.com/vnotex/vnote
- Working fork: https://github.com/wachin/vnote
- Create the translation file
src/data/core/translations/vnote_es_ES.ts. - Add
vnote_es_ES.tstoVX_TS_FILESinsrc/CMakeLists.txt. - Translate VNote strings into Spanish.
- Verify that no translations remain marked as
unfinished. - Verify that Qt placeholders (
%1,%2,%n) are preserved. - Verify that
lreleasegenerates the.qmfile correctly. - Manually review the translation in Qt Linguist to fix style, accents, context, and interface strings that are too long.
- Add
es_ESto the packaging flow when building AppImages or final installers.src/Packaging.cmakecurrently contains:--translations zh_CN,es_ES,ja. - Test a built VNote binary with the interface in Spanish.
- Open a pull request from
wachin/vnotetovnotex/vnote.
This fork builds with Qt 6. The local reference workflow is:
.github/workflows/ci-linux.yml
Main dependencies:
- Git.
- CMake 3.20 or newer.
- C++17 compiler.
- Qt 6 with
qtwebengine,qtwebchannel,qtpositioning,qtpdf,qtimageformats,qt5compat, and Linguist tools. - Qt Creator or Qt Linguist to review
vnote_es_ES.ts. - Linux packages used by CI:
extra-cmake-modules,libxkbcommon-dev,libxcb-cursor-dev,libfcitx5-qt-dev,fcitx-libs-dev,fuse.
Note: the older website instructions use Qt5 packages. For this branch, it is better to follow the current CI workflow, which installs Qt 6.8.3.
When cloning from scratch:
git clone https://github.com/wachin/vnote.git vnote
cd vnote
git submodule update --init --recursiveIf the repository already exists, update submodules:
git submodule sync --recursive
git submodule update --init --recursiveOpen the file in Qt Linguist:
linguist src/data/core/translations/vnote_es_ES.tsYou can also open the project in Qt Creator and edit the .ts file from the
translation tools.
Review checklist:
- Review the main menus.
- Review note, folder, and notebook dialogs.
- Review search.
- Review export.
- Review ViewArea, splits, tabs, and workspaces.
- Review error and confirmation messages.
- Review plurals (
%n) in Qt Linguist. - Confirm that no translation breaks placeholders (
%1,%2,%n).
When the code changes and new tr() calls appear, update the .ts files from
the CMake build:
cmake --build build --target update_translationsIf that target does not exist with the local Qt/CMake version, use the target
generated by CMake for lupdate, or run it manually:
lupdate src -ts src/data/core/translations/vnote_es_ES.tsWarning: lupdate src may print errors while parsing modern/minified
JavaScript files under src/data/extra/web. If the .ts file updates
correctly, those messages do not block the translation work.
From a build directory already configured by CMake:
cmake --build build --target lreleaseQuick validation for Spanish only:
lrelease src/data/core/translations/vnote_es_ES.ts -qm /tmp/vnote_es_ES.qmExpected result:
Generated 1626 translation(s) (1626 finished and 0 unfinished)
The .qm files generated by CMake normally end up under:
build/src/translations/
Configure and build:
mkdir -p build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target vnote
cmake --build build --target lreleaseTo build the package used by CI:
cmake --build build --target packCI performs additional steps for AppImage, fcitx-qt5, qt6ct, OpenSSL, and
linuxdeploy. To test the translation locally, it is usually enough to build the
vnote binary and the .qm files.
-
Run the built VNote binary:
./build/src/vnote
-
Open
Settings. -
Go to
General. -
Change
Language:toes_ESorSpanish, depending on how it appears in the list. -
Restart VNote if the application asks for it.
-
Verify that menus and dialogs appear in Spanish.
If the translation does not load:
- Confirm that
build/src/translations/vnote_es_ES.qmexists. - Confirm that
vnote_es_ES.tsis listed insrc/CMakeLists.txt. - Confirm that VNote is finding the
translationsfolder. - Try installing the project or temporarily copying
vnote_es_ES.qmnext to the other translations used by the binary.
Before opening the pull request:
git status --short
git diff -- src/CMakeLists.txt src/data/core/translations/vnote_es_ES.ts Roadmap.md
lrelease src/data/core/translations/vnote_es_ES.ts -qm /tmp/vnote_es_ES.qmFinal checklist:
-
The translation builds with
lrelease. -
VNote starts correctly.
-
The interface can be switched to Spanish.
-
The main dialogs were visually reviewed.
-
es_ESwas added to packaging if a final package will be distributed. -
A clear commit was created, for example:
git add src/CMakeLists.txt src/data/core/translations/vnote_es_ES.ts Roadmap.md git commit -m "Add Spanish translation"