Skip to content

Latest commit

 

History

History
198 lines (144 loc) · 5.47 KB

File metadata and controls

198 lines (144 loc) · 5.47 KB

VNote Spanish Translation Roadmap

This file tracks the remaining work needed to finish, build, and test the Spanish translation of VNote in this fork:

Current Status

  • Create the translation file src/data/core/translations/vnote_es_ES.ts.
  • Add vnote_es_ES.ts to VX_TS_FILES in src/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 lrelease generates the .qm file correctly.
  • Manually review the translation in Qt Linguist to fix style, accents, context, and interface strings that are too long.
  • Add es_ES to the packaging flow when building AppImages or final installers. src/Packaging.cmake currently contains: --translations zh_CN,es_ES,ja.
  • Test a built VNote binary with the interface in Spanish.
  • Open a pull request from wachin/vnote to vnotex/vnote.

Required Tools

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.

Initialize The Repository

When cloning from scratch:

git clone https://github.com/wachin/vnote.git vnote
cd vnote
git submodule update --init --recursive

If the repository already exists, update submodules:

git submodule sync --recursive
git submodule update --init --recursive

Edit The Translation

Open the file in Qt Linguist:

linguist src/data/core/translations/vnote_es_ES.ts

You 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).

Update Source Strings

When the code changes and new tr() calls appear, update the .ts files from the CMake build:

cmake --build build --target update_translations

If 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.ts

Warning: 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.

Build The Languages

From a build directory already configured by CMake:

cmake --build build --target lrelease

Quick validation for Spanish only:

lrelease src/data/core/translations/vnote_es_ES.ts -qm /tmp/vnote_es_ES.qm

Expected result:

Generated 1626 translation(s) (1626 finished and 0 unfinished)

The .qm files generated by CMake normally end up under:

build/src/translations/

Build VNote For Testing

Configure and build:

mkdir -p build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target vnote
cmake --build build --target lrelease

To build the package used by CI:

cmake --build build --target pack

CI 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.

Test The Spanish Interface

  1. Run the built VNote binary:

    ./build/src/vnote
  2. Open Settings.

  3. Go to General.

  4. Change Language: to es_ES or Spanish, depending on how it appears in the list.

  5. Restart VNote if the application asks for it.

  6. Verify that menus and dialogs appear in Spanish.

If the translation does not load:

  • Confirm that build/src/translations/vnote_es_ES.qm exists.
  • Confirm that vnote_es_ES.ts is listed in src/CMakeLists.txt.
  • Confirm that VNote is finding the translations folder.
  • Try installing the project or temporarily copying vnote_es_ES.qm next to the other translations used by the binary.

Prepare The Contribution

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.qm

Final checklist:

  • The translation builds with lrelease.

  • VNote starts correctly.

  • The interface can be switched to Spanish.

  • The main dialogs were visually reviewed.

  • es_ES was 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"