Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jun 2023 00:06:25 GMT
From:      "Danilo G. Baio" <dbaio@FreeBSD.org>
To:        doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org
Subject:   git: 0f02d4b794 - main - fdp-primer: Add Weblate chapter
Message-ID:  <202306200006.35K06PdI024939@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dbaio:

URL: https://cgit.FreeBSD.org/doc/commit/?id=0f02d4b7944fb05450a84711d81b3a0fa5f98a49

commit 0f02d4b7944fb05450a84711d81b3a0fa5f98a49
Author:     Danilo G. Baio <dbaio@FreeBSD.org>
AuthorDate: 2023-06-19 23:56:24 +0000
Commit:     Danilo G. Baio <dbaio@FreeBSD.org>
CommitDate: 2023-06-19 23:56:24 +0000

    fdp-primer: Add Weblate chapter
    
    Based on the Wiki page
    https://wiki.freebsd.org/Doc/Translation/Weblate
    
    While here, adjust some old information in the po-translations chapter.
    
    Reviewed by:    bcr, ebrandi, fernape, grahamperrin, pauamma_gundo.com
    Differential Revision: https://reviews.freebsd.org/D40313
---
 .../content/en/books/fdp-primer/book.adoc          |   2 +
 .../en/books/fdp-primer/editor-config/_index.adoc  |   4 +-
 .../en/books/fdp-primer/manual-pages/_index.adoc   |   6 +-
 .../books/fdp-primer/po-translations/_index.adoc   |  85 +---
 .../en/books/fdp-primer/see-also/_index.adoc       |   4 +-
 .../en/books/fdp-primer/trademarks/_index.adoc     |   4 +-
 .../en/books/fdp-primer/weblate/_index.adoc        | 487 +++++++++++++++++++++
 .../en/books/fdp-primer/writing-style/_index.adoc  |   4 +-
 .../images/books/fdp-primer/weblate-commit.webp    | Bin 0 -> 116352 bytes
 .../images/books/fdp-primer/weblate-documents.webp | Bin 0 -> 76266 bytes
 .../images/books/fdp-primer/weblate-languages.webp | Bin 0 -> 45534 bytes
 .../images/books/fdp-primer/weblate-login.webp     | Bin 0 -> 85142 bytes
 .../images/books/fdp-primer/weblate-offline.webp   | Bin 0 -> 67266 bytes
 .../images/books/fdp-primer/weblate-revision1.webp | Bin 0 -> 104716 bytes
 .../images/books/fdp-primer/weblate-revision2.webp | Bin 0 -> 107148 bytes
 .../images/books/fdp-primer/weblate-translate.webp | Bin 0 -> 117412 bytes
 .../weblate_automatic_suggestion_01.webp           | Bin 0 -> 61652 bytes
 .../weblate_automatic_suggestion_02.webp           | Bin 0 -> 73586 bytes
 .../weblate_automatic_suggestion_03.webp           | Bin 0 -> 80994 bytes
 19 files changed, 519 insertions(+), 77 deletions(-)

diff --git a/documentation/content/en/books/fdp-primer/book.adoc b/documentation/content/en/books/fdp-primer/book.adoc
index 151fec0747..e7bf44db97 100644
--- a/documentation/content/en/books/fdp-primer/book.adoc
+++ b/documentation/content/en/books/fdp-primer/book.adoc
@@ -82,6 +82,8 @@ include::{chapters-path}translations/_index.adoc[leveloffset=+1]
 
 include::{chapters-path}po-translations/_index.adoc[leveloffset=+1]
 
+include::{chapters-path}weblate/_index.adoc[leveloffset=+1]
+
 include::{chapters-path}manual-pages/_index.adoc[leveloffset=+1]
 
 include::{chapters-path}writing-style/_index.adoc[leveloffset=+1]
diff --git a/documentation/content/en/books/fdp-primer/editor-config/_index.adoc b/documentation/content/en/books/fdp-primer/editor-config/_index.adoc
index b0378594b0..c1e8e3fa3f 100644
--- a/documentation/content/en/books/fdp-primer/editor-config/_index.adoc
+++ b/documentation/content/en/books/fdp-primer/editor-config/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 12. Editor Configuration
+title: Chapter 13. Editor Configuration
 prev: books/fdp-primer/writing-style
 next: books/fdp-primer/trademarks
 description: Configuration used in the texts editors in the FreeBSD Documentation Project
@@ -17,7 +17,7 @@ path: "/books/fdp-primer/"
 :icons: font
 :sectnums:
 :sectnumlevels: 6
-:sectnumoffset: 12
+:sectnumoffset: 13
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/fdp-primer/manual-pages/_index.adoc b/documentation/content/en/books/fdp-primer/manual-pages/_index.adoc
index c2336f5b14..206704c902 100644
--- a/documentation/content/en/books/fdp-primer/manual-pages/_index.adoc
+++ b/documentation/content/en/books/fdp-primer/manual-pages/_index.adoc
@@ -1,6 +1,6 @@
 ---
-title: Chapter 10. Manual Pages
-prev: books/fdp-primer/po-translations
+title: Chapter 11. Manual Pages
+prev: books/fdp-primer/weblate
 next: books/fdp-primer/writing-style
 description: How to work with the FreeBSD Manual Pages
 tags: ["manual pages", "introduction", "guide", "reference"]
@@ -17,7 +17,7 @@ path: "/books/fdp-primer/"
 :icons: font
 :sectnums:
 :sectnumlevels: 6
-:sectnumoffset: 10
+:sectnumoffset: 11
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/fdp-primer/po-translations/_index.adoc b/documentation/content/en/books/fdp-primer/po-translations/_index.adoc
index fc6da5fcb8..8531b11576 100644
--- a/documentation/content/en/books/fdp-primer/po-translations/_index.adoc
+++ b/documentation/content/en/books/fdp-primer/po-translations/_index.adoc
@@ -1,11 +1,11 @@
 ---
 title: Chapter 9. PO Translations
 prev: books/fdp-primer/translations
-next: books/fdp-primer/manual-pages
+next: books/fdp-primer/weblate
 description: How to work with PO translation in the FreeBSD Documentation Project
 tags: ["po", "translations", "tutorial", "quick start"]
 showBookMenu: true
-weight: 10
+weight: 9
 path: "/books/fdp-primer/"
 ---
 
@@ -93,13 +93,18 @@ The path is the same except for the name of the language directory.
 % mkdir ~/doc/documentation/content/es/articles/leap-seconds
 ....
 
-. Copy the [.filename]#_index.adoc# from the original document into the translation directory:
+. Copy the [.filename]#_index.po# from the original document into the translation directory:
 +
 [source,shell]
 ....
-% cp ~/doc/documentation/content/en/articles/leap-seconds/_index.adoc \
+% cp ~/doc/documentation/content/en/articles/leap-seconds/_index.po \
   ~/doc/documentation/content/es/articles/leap-seconds/
 ....
+
+Suppose the document or language is also being translated via Weblate.
+In that case, it is good to get the `.po` file from there and upload the translation document back into the platform, centralizing the translating efforts via Weblate to avoid rework.
+
+See how to download the `.po` files in the crossref:weblate[weblate-translating-offline,Translating Offline on Weblate] chapter.
 ====
 
 [[po-translations-quick-start-translation]]
@@ -107,27 +112,9 @@ The path is the same except for the name of the language directory.
 ====
 .Procedure: Translation
 
-Translating a document consists of two steps: extracting translatable strings from the original document, and entering translations for those strings.
-These steps are repeated until the translator feels that enough of the document has been translated to produce a usable translated document.
+Use a PO editor to enter translations in the PO file.
+There are several different editors available. [.filename]#poedit# from package:editors/poedit[] is shown here.
 
-. Extract the translatable strings from the original English version into a PO file:
-+
-[source,shell]
-....
-% cd ~/doc
-% po4a-gettextize \
-  --format asciidoc \
-  --option compat=asciidoctor \
-  --option yfm_keys=title,part,description \
-  --master "documentation/content/en/articles/leap-seconds/_index.adoc" \
-  --master-charset "UTF-8" \
-  --copyright-holder "The FreeBSD Project" \
-  --package-name "FreeBSD Documentation" \
-  --po "documentation/content/es/articles/leap-seconds/_index.po"
-....
-+
-. Use a PO editor to enter translations in the PO file. There are several different editors available. [.filename]#poedit# from package:editors/poedit[] is shown here.
-+
 [source,shell]
 ....
 % poedit documentation/content/es/articles/leap-seconds/_index.po
@@ -143,16 +130,7 @@ These steps are repeated until the translator feels that enough of the document
 [source,shell]
 ....
 % cd ~/doc
-% po4a-translate \
-  --format asciidoc \
-  --option compat=asciidoctor \
-  --option yfm_keys=title,part,description \
-  --master "documentation/content/en/articles/leap-seconds/_index.adoc" \
-  --master-charset "UTF-8" \
-  --po "documentation/content/es/articles/leap-seconds/_index.po" \
-  --localized "documentation/content/es/articles/leap-seconds/_index.adoc" \
-  --localized-charset "UTF-8" \
-  --keep 0
+% ./tools/translate.sh documentation es articles/leap-seconds
 ....
 +
 The name of the generated document matches the name of the English original, usually [.filename]#_index.adoc#.
@@ -319,39 +297,10 @@ The Ports Collection offers several of these editors, including package:devel/gt
 It is important to preserve the PO file.
 It contains all of the work that translators have done.
 
-[[po-translations-translating-example]]
-.Translating the Porter's Handbook to Spanish
-[example]
+[IMPORTANT]
 ====
-
-[.procedure]
-======
-. Change to the base directory and update all PO files.
-+
-[source,shell]
-....
-% cd ~/doc
-% po4a-gettextize \
-  --format asciidoc \
-  --option compat=asciidoctor \
-  --option yfm_keys=title,part,description \
-  --master "documentation/content/en/books/porters-handbook/_index.adoc" \
-  --master-charset "UTF-8" \
-  --copyright-holder "The FreeBSD Project" \
-  --package-name "FreeBSD Documentation" \
-  --po "documentation/content/es/books/porters-handbook/_index.po"
-....
-
-. Enter translations using a PO editor:
-+
-[source,shell]
-....
-% poedit documentation/content/es/books/porters-handbook/_index.po
-....
-======
-
-These steps are necessary for all `.adoc` files, excluding `chapters-order.adoc` and `toc-*.adoc`.
-
+Translating documents online proves to be the easiest method for document translation on FreeBSD, as it allows multiple users to collaborate on the same file, distributing the workload effectively.
+For more details, please refer to the next chapter, crossref:weblate[weblate-introduction,Weblate Translations].
 ====
 
 [[po-translations-tips]]
@@ -414,6 +363,8 @@ Any untranslated portions of the original will be included in English in the res
 Most PO editors have an indicator that shows how much of the translation has been completed.
 This makes it easy for the translator to see when enough strings have been translated to make building the final document worthwhile.
 
+The Weblate chapter provides a complete example of how to crossref:weblate[weblate-building,Build the Translated Document].
+
 [[po-translations-submitting]]
 == Submitting the New Translation
 
@@ -438,4 +389,6 @@ The diff files created by these examples can be attached to a https://bugs.freeb
 ....
 ======
 
+The Weblate chapter provides a complete example of how to crossref:weblate[weblate-submitting-translations,Submit the New Translation].
+
 ====
diff --git a/documentation/content/en/books/fdp-primer/see-also/_index.adoc b/documentation/content/en/books/fdp-primer/see-also/_index.adoc
index 89905aa28d..a7312e980d 100644
--- a/documentation/content/en/books/fdp-primer/see-also/_index.adoc
+++ b/documentation/content/en/books/fdp-primer/see-also/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 14. See Also
+title: Chapter 15. See Also
 prev: books/fdp-primer/trademarks/
 next: books/fdp-primer/examples
 description: More information about the FreeBSD Documentation Project
@@ -17,7 +17,7 @@ path: "/books/fdp-primer/"
 :icons: font
 :sectnums:
 :sectnumlevels: 6
-:sectnumoffset: 14
+:sectnumoffset: 15
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/fdp-primer/trademarks/_index.adoc b/documentation/content/en/books/fdp-primer/trademarks/_index.adoc
index a57a2755c8..476716295a 100644
--- a/documentation/content/en/books/fdp-primer/trademarks/_index.adoc
+++ b/documentation/content/en/books/fdp-primer/trademarks/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 13. Trademarks
+title: Chapter 14. Trademarks
 prev: books/fdp-primer/editor-config/
 next: books/fdp-primer/see-also
 description: Guidelines for trademarks in the FreeBSD Documentation Project
@@ -17,7 +17,7 @@ path: "/books/fdp-primer/"
 :icons: font
 :sectnums:
 :sectnumlevels: 6
-:sectnumoffset: 13
+:sectnumoffset: 14
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/content/en/books/fdp-primer/weblate/_index.adoc b/documentation/content/en/books/fdp-primer/weblate/_index.adoc
new file mode 100644
index 0000000000..83b234910c
--- /dev/null
+++ b/documentation/content/en/books/fdp-primer/weblate/_index.adoc
@@ -0,0 +1,487 @@
+---
+title: Chapter 10. Weblate Translations
+prev: books/fdp-primer/po-translations
+next: books/fdp-primer/manual-pages
+description: "How to join the FreeBSD translators team and translate online on Weblate"
+tags: ["weblate", "po", "translations", "tutorial", "quick start"]
+showBookMenu: true
+weight: 10
+path: "/books/fdp-primer/"
+---
+
+[[weblate-translations]]
+= Weblate Translations
+:doctype: book
+:toc: macro
+:toclevels: 1
+:icons: font
+:sectnums:
+:sectnumlevels: 6
+:sectnumoffset: 10
+:partnums:
+:source-highlighter: rouge
+:experimental:
+:images-path: books/fdp-primer/
+
+ifdef::env-beastie[]
+ifdef::backend-html5[]
+:imagesdir: ../../../../images/{images-path}
+endif::[]
+ifndef::book[]
+include::shared/authors.adoc[]
+include::shared/mirrors.adoc[]
+include::shared/releases.adoc[]
+include::shared/attributes/attributes-{{% lang %}}.adoc[]
+include::shared/{{% lang %}}/teams.adoc[]
+include::shared/{{% lang %}}/mailing-lists.adoc[]
+include::shared/{{% lang %}}/urls.adoc[]
+toc::[]
+endif::[]
+ifdef::backend-pdf,backend-epub3[]
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+endif::[]
+
+ifndef::env-beastie[]
+toc::[]
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+
+[[weblate-introduction]]
+== Introduction
+
+This chapter describes some basic steps for joining the FreeBSD translators team, translating online on Weblate or offline, and some simple suggestions on translating, proofreading, and testing.
+It's focused on the translation part.
+
+The original documents (articles and books) are in the {main-site}[documentation portal].
+
+https://weblate.org/en/[Weblate] is web-based open-source software focused on localization; the FreeBSD project runs a local instance.
+
+[[weblate-become-translator]]
+== How to Become a FreeBSD Translator
+
+Following are simple steps to start translating articles and books of the FreeBSD Documentation Project.
+
+. Create an account on the https://translate-dev.freebsd.org/[FreeBSD Weblate instance] with an email address or your GitHub account.
+. Subscribe to the {freebsd-translators}.
+. Introduce yourself and ask to join a language team.
+If the language team does not exist, ask to create it.
+The self-introduction is essential.
+It raises your chances of being approved for write access.
+. Login to https://translate-dev.freebsd.org/[Weblate] with the new account.
+. Find the language team and choose an initial document to translate.
+. Create a Bugzilla account to submit the translations after finishing a document.
+The Documentation project is also accepting GitHub Pull Requests with translation submissions.
+
+[WARNING]
+====
+All translation files and documents must follow https://www.freebsd.org/copyright/freebsd-doc-license/[The FreeBSD Documentation License]; if this is unacceptable, please do not sign up or send any patches or translations.
+====
+
+[[weblate-introduce-yourself]]
+== Introduce Yourself
+
+Please provide a brief self-introduction on the {freebsd-translators} to initiate the process of granting access.
+This will enable a language coordinator or administrator to provide the necessary permissions for the new user of Weblate to start translating.
+
+Following is an example of how such an email could look.
+
+[.programlisting]
+....
+Subject: Self-Introduction: Name and language
+
+Name:      Name (use preferred name)
+Location:  City, country (optional)
+Login:     username or email (essential)
+Language:  Language to translate (essential)
+Profession or student status: (optional)
+About You: (free format -- info which you feel comfortable sharing with
+  others: company, school, other affiliation, historical qualifications, other
+  projects you have worked on, level and type of computer skills, other relevant skills,
+  etc.)
+You and the FreeBSD Project: (free format: other FreeBSD projects of
+  interest, comments, etc.)
+....
+
+[[weblate-login]]
+== Login to Weblate
+
+Open https://translate-dev.freebsd.org/[] and `Sign in`.
+
+image::weblate-login.webp[Weblate Login,800]
+
+Use a username, email address, or GitHub account to log in.
+
+The user profile contains your preferences, name, and email address.
+The name and address will be used in commits; keep this information accurate.
+
+On the FreeBSD Weblate instance, all translations will be committed to https://github.com/freebsd/freebsd-doc-translate[freebsd-doc-translate] (an intermediate repository on GitHub), not directly to https://github.com/freebsd/freebsd-doc[freebsd-doc].
+Translators must take the PO gettext files (`.po`), converting them to `.adoc` and submit it via https://bugs.freebsd.org/bugzilla/[Bugzilla] or https://github.com/freebsd/freebsd-doc/pulls[GitHub] to get the translated document published or updated in the documentation portal.
+See more in the following sections.
+
+Weblate will commit daily, at least to `freebsd-doc-translate`, if any new strings are translated.
+
+[[weblate-find-language-team]]
+== Find a Language Team to Join In
+
+Click `Projects`, choose `Documentation`, then click `Languages`, and see all the available languages.
+
+image::weblate-languages.webp[Weblate Languages,500]
+
+Note that some languages and translated documents already exist in the documentation portal and repositories.
+
+If the desired language for translation is not available in Weblate, please contact the https://www.freebsd.org/docproj/translations/[language coordinators] before asking to create a new language.
+If there is no answer, then write to the {doceng}.
+
+[[weblate-translating-online]]
+== Translating Online on Weblate
+
+Translating documents online proves to be the easiest method for document translation on FreeBSD, as it allows users to collaborate on the same file, distributing the workload.
+
+Once a coordinator or administrator grants access to a specific language for a username, the save button will be enabled, so that this user can start translating.
+
+image::weblate-documents.webp[Weblate Documents,800]
+image::weblate-translate.webp[Weblate Translate,800]
+
+Weblate has a set of links that lead to actual translation.
+The translation is further divided into individual checks, like `Untranslated` or `Needing review`.
+If the whole document is translated without any error, `All translations` link is still available in case a review is necessary.
+Alternatively, the search field can be used to find a specific string or term.
+
+In the https://docs.weblate.org/en/latest/user/translating.html#translation-projects[Weblate documentation], there is more info about translations, like keyboard shortcuts and other tips about the translation tool.
+
+[[weblate-translating-offline]]
+== Translating Offline
+
+Weblate on FreeBSD uses PO gettext files for translations.
+Users familiar with PO gettext files that want to translate offline can download and upload the translations through the document page on Weblate by clicking in the `Files` section.
+
+image::weblate-offline.webp[Weblate Offline,800]
+
+[[weblate-automatic-suggestions]]
+== Translation based on Automatic Suggestions
+
+Languages using Weblate before the migration to Hugo/Asciidoctor can use this feature from Weblate to save time.
+
+This feature from Weblate uses the Translation Memory generated by the other components and projects on the same server.
+The former Weblate translations are hosted on the same server as read-only for that.
+
+Strings that match `100/100` in similarity can be copied and saved directly.
+Other strings will need at least minor adjustment.
+
+Some examples:
+
+image::weblate_automatic_suggestion_01.webp[Weblate Automatic Suggestions 01,800]
+
+With the migration to Hugo/Asciidoctor, documents use UTF-8.
+Some HTML entities should be replaced.
+Some strings, such as links, require changes to markup.
+
+image::weblate_automatic_suggestion_02.webp[Weblate Automatic Suggestions 02,800]
+
+Links:
+
+image::weblate_automatic_suggestion_03.webp[Weblate Automatic Suggestions 03,800]
+
+[[weblate-proofreading-qa]]
+== Proofreading and Weblate Quality Checks
+
+The document dashboard `Project/Language/Document` shows the translation status and string status for that document.
+This page is handy for proofreading and quality checks.
+
+image::weblate-revision1.webp[Weblate Revision 01,800]
+
+In this example, two strings are missing the full stop; following that link will show only those strings to be revised/translated.
+
+image::weblate-revision2.webp[Weblate Revision 02,800]
+
+Translators and reviewers often value observing translated strings in context.
+
+[[weblate-building]]
+== Building the Translated Document
+
+The project does not use continuous integration and continuous delivery to build translations.
+There are studies to make it available.
+
+[NOTE]
+====
+The following example uses GitHub, as Weblate is also on GitHub.
+Note that this repository is a read-only mirror, but Pull Requests are accepted.
+====
+
+To build the translation locally, follow these steps:
+
+[[weblate-clone-repositories]]
+
+[.procedure]
+====
+.Procedure: Clone the necessary repositories
+. Clone the `freebsd-doc` repository:
++
+[source,console?prompt=%]
+....
+% git clone https://github.com/freebsd/freebsd-doc.git ~/freebsd-doc
+....
+
+. Clone the `freebsd-doc-translate` repository:
++
+[source,console?prompt=%]
+....
+% git clone https://github.com/freebsd/freebsd-doc-translate.git ~/freebsd-doc-translate
+....
+====
+
+[[weblate-copy-translation]]
+
+[.procedure]
+====
+.Procedure: Copy a translation file to `freebsd-doc`
+
+With both repositories in place, copy the translation from `freebsd-doc-translate` to `freebsd-doc`.
+Example of the Committer's Guide article translation in Spanish.
+
+[source,console?prompt=%]
+....
+% cp ~/freebsd-doc-translate/documentation/content/es/articles/committers-guide/_index.po \
+~/freebsd-doc/documentation/content/es/articles/committers-guide/
+....
+====
+
+[[weblate-translate]]
+
+[.procedure]
+====
+.Procedure: Convert a translation file (`.po`) to `.adoc`
+
+Go to the root of `freebsd-doc`.
+
+[source,console?prompt=%]
+....
+% cd ~/freebsd-doc
+....
+
+Translate (convert) the `.po` file to `.adoc`
+
+[source,console?prompt=%]
+....
+% ./tools/translate.sh documentation es articles/committers-guide
+....
+
+By default: only files with more than eighty percent of strings translated will be converted to `.adoc`.
+
+To ignore that limit:
+
+[source,console?prompt=%]
+....
+% KEEP_ENV=0 ./tools/translate.sh documentation es articles/committers-guide
+....
+
+====
+
+Some documents, like books, have many PO gettext files.
+Always copy all of them when translating and building.
+Files that weren't translated will be converted with the source (English) strings.
+
+[WARNING]
+====
+The directory structure is fundamental.
+Always follow the English document directory structure.
+====
+
+[[weblate-build]]
+
+[.procedure]
+====
+.Procedure: Build the translated document
+
+Last, the building part.
+
+Enter the documentation directory because there is no need to build the FreeBSD website.
+
+[source,console?prompt=%]
+....
+% cd documentation
+....
+
+And build the documentation.
+Note that `en` is always added by default when building any other language.
+
+[source,console?prompt=%]
+....
+% DOC_LANG=es make
+....
+
+This command will build only the English and Spanish documents of the FreeBSD documentation portal.
+The output will be in the [.filename]#public# directory; open that in a browser.
+Note that some index files can redirect the browser to the online page.
+
+Another good option is to build and serve the content with Hugo's internal webserver:
+
+[source,console?prompt=%]
+....
+% DOC_LANG=es make run
+....
+
+By default, the webserver listens on `localhost`; To override this behavior, specify the desired IP address in the `BIND` parameter value.
+
+[source,console?prompt=%]
+....
+% DOC_LANG=es make run BIND=192.168.15.10
+....
+
+This builds and serves the content with Hugo's internal webserver and lets it open, and if any file changes, it rebuilds them automatically.
+====
+
+To make any necessary adjustments in the translation, follow the steps below to re-sync all components:
+
+- Fix the translation string on https://translate-dev.freebsd.org/[Weblate].
+- Force Weblate to commit the changes on `Document/Manage/Commit` section.
+- Sync the local Weblate repository `freebsd-doc-translate` with a `git pull origin main` command.
+- Copy the translation again to `freebsd-doc`.
+- Convert the translation to .adoc with the `./tools/translate.sh` script.
+- Hugo will rebuild the file and not build the entire set if `make run` was used; or re-execute `make`.
+
+[IMPORTANT]
+====
+Follow the previous steps as many times as is necessary until the document is ready to be published.
+====
+
+The crossref:doc-build[doc-build-rendering,Documentation Build Process] chapter includes information about rendering to HTML and PDF.
+
+[[weblate-submitting-translations]]
+== Submitting Translations
+
+Example of submitting an update to the Brazilian Portuguese article Committer's Guide.
+
+
+[[weblate-git-repo-status]]
+
+[.procedure]
+====
+.Check the repository
+
+After following the steps in crossref:weblate[weblate-building,Building the Translated Document], go to the root of `freebsd-doc` and preview what's to be committed.
+For an overview of files to be changed, and differences in file content:
+
+[source,console?prompt=%]
+....
+% git status
+% git diff
+....
+
+Review the output, and if any files unrelated to the Committer's Guide translation update were changed or added, take the appropriate action of reverting or removing them, respectively, before proceeding further.
+
+Always include the PO gettext file (`.po`) and the translated document in Hugo/Asciidoctor (`.adoc`).
+====
+
+[[weblate-git-new-branch]]
+
+[.procedure]
+====
+.Create a new branch and commit
+
+Create another branch to separate the work, which will help with future updates in the local repository.
+
+[source,console?prompt=%]
+....
+% git checkout -b committers-guide_pt-br
+....
+
+Register the local commit.
+
+[source,console?prompt=%]
+....
+% git add .
+% git commit
+....
+
+Example of commit messages for translations:
+
+[.programlisting]
+....
+pt-br/committers-guide: Sync with en XXXXXXX
+....
+
+Where `XXXXXXX` is the man:git[1] revision stored in the Weblate repository [.filename]#~/freebsd-doc-translate/revision.txt#.
+
+If it is the first translation of an article:
+
+[.programlisting]
+....
+Add Korean translation of Leap Seconds article
+....
+
+A message will be displayed after the commit if man:git[1] has not been configured previously.
+Please follow the instructions and provide the name and email address used on Weblate.
+This step is crucial to proper crediting of contributors.
+
+Then check the entire commit, review changes, and author name and email.
+
+[source,console?prompt=%]
+....
+% git show
+....
+====
+
+[[weblate-git-patch-submit]]
+
+[.procedure]
+====
+.Generate a patch
+
+Next, generate a man:git-format-patch[1] file.
+
+[source,console?prompt=%]
+....
+% git format-patch main
+0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch
+....
+====
+
+Attach the patch [.filename]#0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch# to a problem report in https://bugs.freebsd.org/bugzilla/[FreeBSD Bugzilla].
+
+Include the following information in the report:
+
+[[weblate-bugzilla-fields]]
+.Bugzilla Fields
+[cols="1,1", frame="none", options="header"]
+|===
+| Field
+| Value
+
+| *product*
+| Documentation
+
+| *Component*
+| Books & Articles
+
+| *Summary*
+| Same as the local commit
+
+| *Description*
+| State that instructions in this guide were followed, including proofreading and other necessary steps.
+Include things that may help with triage and progression of the report.
+
+
+| *CC* (Optional)
+| If the language has coordinators, include their email addresses in the CC field.
+|===
+
+For people familiar with man:git[1] and GitHub: instead of submitting the patch through https://bugs.freebsd.org/bugzilla/[Bugzilla], a https://github.com/freebsd/freebsd-doc/pulls[GitHub pull request] can be used (use the name and address that you use with Weblate).
+
+https://github.com/freebsd/freebsd-doc/ is a secondary mirror.
+Changes to the `doc` tree can be made only by people who have a `doc` commit bit.
+
+When translators keep sending good-quality patches, they can be nominated by other committers to receive write-access (a extref:{committers-guide}[doc commit bit, committer.types] for translations), a FreeBSD account, and associated perks.
+
+The list of extref:{contributors}[Additional FreeBSD Contributors, contrib-additional] includes non-committers whose contributions are committed to the `doc` tree.
+
+If in doubt about any procedure, write to the {freebsd-translators}.
+
+[[weblate-faq]]
+== FAQ (Frequently Asked Questions)
+
+[[weblate-copyrights]]
+=== Is it necessary to translate all the Copyright messages?
+
+Every language team decides this for their language; in `pt-br` (Brazilian Portuguese) team, it was decided not to translate those messages.
diff --git a/documentation/content/en/books/fdp-primer/writing-style/_index.adoc b/documentation/content/en/books/fdp-primer/writing-style/_index.adoc
index fe9d704a8b..1cd3c92736 100644
--- a/documentation/content/en/books/fdp-primer/writing-style/_index.adoc
+++ b/documentation/content/en/books/fdp-primer/writing-style/_index.adoc
@@ -1,5 +1,5 @@
 ---
-title: Chapter 11. Writing Style
+title: Chapter 12. Writing Style
 prev: books/fdp-primer/manual-pages
 next: books/fdp-primer/editor-config
 description: Writing Style and some conventions used in the FreeBSD Documentation Project
@@ -17,7 +17,7 @@ path: "/books/fdp-primer/"
 :icons: font
 :sectnums:
 :sectnumlevels: 6
-:sectnumoffset: 11
+:sectnumoffset: 12
 :partnums:
 :source-highlighter: rouge
 :experimental:
diff --git a/documentation/static/images/books/fdp-primer/weblate-commit.webp b/documentation/static/images/books/fdp-primer/weblate-commit.webp
new file mode 100644
index 0000000000..e5df1bcdb0
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-commit.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-documents.webp b/documentation/static/images/books/fdp-primer/weblate-documents.webp
new file mode 100644
index 0000000000..866e33cb7f
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-documents.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-languages.webp b/documentation/static/images/books/fdp-primer/weblate-languages.webp
new file mode 100644
index 0000000000..cb1b65a788
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-languages.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-login.webp b/documentation/static/images/books/fdp-primer/weblate-login.webp
new file mode 100644
index 0000000000..a947159de9
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-login.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-offline.webp b/documentation/static/images/books/fdp-primer/weblate-offline.webp
new file mode 100644
index 0000000000..4ea4999f9a
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-offline.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-revision1.webp b/documentation/static/images/books/fdp-primer/weblate-revision1.webp
new file mode 100644
index 0000000000..939eb0b335
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-revision1.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-revision2.webp b/documentation/static/images/books/fdp-primer/weblate-revision2.webp
new file mode 100644
index 0000000000..54242fa930
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-revision2.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate-translate.webp b/documentation/static/images/books/fdp-primer/weblate-translate.webp
new file mode 100644
index 0000000000..d9c3a76973
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate-translate.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_01.webp b/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_01.webp
new file mode 100644
index 0000000000..6f760b2337
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_01.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_02.webp b/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_02.webp
new file mode 100644
index 0000000000..ae12522ca0
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_02.webp differ
diff --git a/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_03.webp b/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_03.webp
new file mode 100644
index 0000000000..0c1aadeb73
Binary files /dev/null and b/documentation/static/images/books/fdp-primer/weblate_automatic_suggestion_03.webp differ



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202306200006.35K06PdI024939>