[www-doc] [Git][VideoLAN.org/websites][hugo-rewrite] 3 commits: homepage: add dav1d, dav2d to professionals; libplacebo to developers

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Thu May 7 17:20:31 UTC 2026



Felix Paul Kühne pushed to branch hugo-rewrite at VideoLAN organization / websites


Commits:
8b436223 by Felix Paul Kühne at 2026-05-07T19:02:33+02:00
homepage: add dav1d, dav2d to professionals; libplacebo to developers

- - - - -
760fd454 by Felix Paul Kühne at 2026-05-07T19:08:00+02:00
i18n: extract pot from Hugo templates, retire xgettext/svn flow

- - - - -
a14ff27e by Felix Paul Kühne at 2026-05-07T19:19:38+02:00
i18n: wrap hardcoded strings, extract page titles into pot

- - - - -


13 changed files:

- + www.videolan.org/bin/hugo2pot.py
- − www.videolan.org/bin/transifex/into_svn.sh
- − www.videolan.org/bin/transifex/run_website_po.sh
- − www.videolan.org/bin/transifex/to_tx_diff.sh
- www.videolan.org/layouts/index.html
- www.videolan.org/layouts/partials/developers/sidebar.html
- www.videolan.org/layouts/partials/release-update/page.html
- www.videolan.org/layouts/partials/site/head.html
- www.videolan.org/layouts/projects/list.html
- www.videolan.org/layouts/release/single.html
- www.videolan.org/layouts/vlc/list.html
- − www.videolan.org/locale/POTFILES
- www.videolan.org/locale/website.pot


Changes:

=====================================
www.videolan.org/bin/hugo2pot.py
=====================================
@@ -0,0 +1,135 @@
+#!/usr/bin/env python3
+"""
+hugo2pot.py — Extract i18n keys from Hugo templates into locale/website.pot.
+
+Replaces the legacy `xgettext` over PHP flow now that the user-facing site is
+authored as Hugo templates. The PO files in `locale/<lang>/LC_MESSAGES/website.po`
+remain the translation source of truth (per the migration plan); this script
+just regenerates the .pot template uploaded to Transifex as
+`vlc-trans.vlc_website`.
+
+Run from www.videolan.org/. No external dependencies.
+"""
+import datetime
+import re
+import sys
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parent.parent
+SCAN_DIRS = [ROOT / "layouts", ROOT / "archetypes"]
+OUT = ROOT / "locale" / "website.pot"
+
+# Frontmatter title/meta_description from these pages is rendered via
+# `{{ i18n .Title }}` in head.html, so the strings need to land in the .pot.
+# Keep this list in sync with bin/gen-localised-pages.py PAGES.
+FRONTMATTER_PAGES = [
+    "content/_index.md",
+    "content/vlc/_index.md",
+    "content/vlc/download-windows.md",
+    "content/vlc/download-macosx.md",
+]
+FRONTMATTER_FIELDS = ("title", "meta_description")
+
+# Match Hugo i18n calls. The function name is `i18n`; the first quoted
+# argument is the message id. We also pick up `T "key"` which Hugo accepts
+# as an alias.
+#
+# Examples covered:
+#   {{ i18n "Download" }}
+#   {{- i18n "Download" -}}
+#   {{ i18n "Download" | safeHTML }}
+#   {{ partial "x" (dict "label" (i18n "Foo")) }}
+#   {{ T "Foo" }}
+KEY_RE = re.compile(r'\b(?:i18n|T)\s+"((?:[^"\\]|\\.)*)"')
+
+
+def escape_po(s: str) -> str:
+    """Escape a Python str for a PO msgid/msgstr line."""
+    return (
+        s.replace("\\", "\\\\")
+         .replace("\"", "\\\"")
+         .replace("\n", "\\n")
+         .replace("\t", "\\t")
+    )
+
+
+def main() -> int:
+    # Collect (key -> sorted set of "path:line") references.
+    refs: dict[str, set[str]] = {}
+
+    for base in SCAN_DIRS:
+        if not base.is_dir():
+            continue
+        for path in sorted(base.rglob("*.html")):
+            text = path.read_text(encoding="utf-8")
+            rel = path.relative_to(ROOT)
+            for m in KEY_RE.finditer(text):
+                key = m.group(1)
+                if not key:
+                    continue
+                # Decode the few escapes Go templates pass through verbatim.
+                decoded = key.encode("utf-8").decode("unicode_escape")
+                line_no = text.count("\n", 0, m.start()) + 1
+                refs.setdefault(decoded, set()).add(f"{rel}:{line_no}")
+
+    fm_re = re.compile(r'^(title|meta_description)\s*:\s*"((?:[^"\\]|\\.)*)"', re.M)
+    for rel in FRONTMATTER_PAGES:
+        path = ROOT / rel
+        if not path.is_file():
+            continue
+        text = path.read_text(encoding="utf-8")
+        # Limit to the YAML frontmatter block (between the first two `---`).
+        m = re.match(r'^---\n(.*?)\n---', text, re.S)
+        if not m:
+            continue
+        fm = m.group(1)
+        for fm_match in fm_re.finditer(fm):
+            field, value = fm_match.group(1), fm_match.group(2)
+            if field not in FRONTMATTER_FIELDS or not value:
+                continue
+            decoded = value.encode("utf-8").decode("unicode_escape")
+            line_no = text.count("\n", 0, m.start(1) + fm_match.start()) + 1
+            refs.setdefault(decoded, set()).add(f"{rel}:{line_no}")
+
+    if not refs:
+        print("hugo2pot: no i18n keys found", file=sys.stderr)
+        return 1
+
+    today = datetime.datetime.now().astimezone().strftime("%Y-%m-%d %H:%M%z")
+    # PO wants the timezone as "+HHMM" without a colon.
+
+    lines = [
+        "# Translations for www.videolan.org",
+        "# Copyright (C) VideoLAN",
+        "# This file is distributed under the same license as the website.",
+        "#",
+        "#, fuzzy",
+        'msgid ""',
+        'msgstr ""',
+        '"Project-Id-Version: VideoLAN\'s websites\\n"',
+        '"Report-Msgid-Bugs-To: vlc-devel at videolan.org\\n"',
+        f'"POT-Creation-Date: {today}\\n"',
+        '"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"',
+        '"Last-Translator: FULL NAME <EMAIL at ADDRESS>\\n"',
+        '"Language-Team: LANGUAGE <LL at li.org>\\n"',
+        '"Language: \\n"',
+        '"MIME-Version: 1.0\\n"',
+        '"Content-Type: text/plain; charset=UTF-8\\n"',
+        '"Content-Transfer-Encoding: 8bit\\n"',
+        "",
+    ]
+
+    for key in sorted(refs):
+        ref_line = "#: " + " ".join(sorted(refs[key]))
+        lines.append(ref_line)
+        lines.append(f'msgid "{escape_po(key)}"')
+        lines.append('msgstr ""')
+        lines.append("")
+
+    OUT.write_text("\n".join(lines), encoding="utf-8")
+    print(f"hugo2pot: wrote {OUT.relative_to(ROOT)} with {len(refs)} entries")
+    return 0
+
+
+if __name__ == "__main__":
+    sys.exit(main())


=====================================
www.videolan.org/bin/transifex/into_svn.sh deleted
=====================================
@@ -1,77 +0,0 @@
-#!/bin/bash
-# -x
-
-# christoph.miebach at web.de
-
-# Probably way too long script for this easy task
-
-#LANGUAGE=en
-LANG=en_GB.utf8
-ISO639="/home/christoph/videolan/locale_iso-639.def"
-SVNDATA="/home/christoph/videolan/www.videolan.org/locale"
-TXLANGNAMES="/home/christoph/videolan/language_names_transifex"
-
-i=$1
-
-f=$( basename $i )
-MAPPED_LANG=`sed -n "s/Language mapping is:.*'\(.*\)': '${f%%.po}'.*/\1/ p" pulling_log.txt`
-if [ -z "$MAPPED_LANG" ]
-then
-  MAPPED_LANG=${f%%.po}
-fi
-echo "Mapped to $MAPPED_LANG"
-
-echo "${i%%.po}"
-langcode="${i%%.po}"
-langname=`sed -n "/^$/,$  s/^DEFINE_LANGUAGE_CODE3* .\"\(.*\)\", $langcode, .*/\1/ p" < $ISO639`
-usedlangname=`sed -n "/^$/,$  s/^\(.*\)|$langcode.po.*/\1/ p" < /home/christoph/videolan/www.videolan.org/developers/i18n/languages`
-txlangname=`sed -n "s/\(.*\)|$MAPPED_LANG$/\1/ p" $TXLANGNAMES`
-
-echo "No_se uses $txlangname"
-usedlangname=$txlangname
-# TODO: usedlangname is obsolete, since we use one tx definition for all resources
-
-echo $langname
-echo $usedlangname
-
-if [ -n "$usedlangname" ]; then
-  echo "Using $usedlangname instead of $langname"
-  langname=$usedlangname
-else
-  if [ -z "$langname" ]; then
-    echo "No langname."
-  fi
-fi
-
-sed "s/# SOME DESCRIPTIVE TITLE./# $langname translation/" < $i | \
-sed "s/# Copyright (C) YEAR jb/# Copyright (C) 2013 VideoLAN/" > WIP.tmp
-#sed "s/# Copyright (C) YEAR jb/# Copyright (C) 2013 VideoLAN/" > $SVNDATA/${i%%.po}/LC_MESSAGES/website.po
-
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR jb
-# This file is distributed under the same license as the PACKAGE package.
-
-
-if [ -f $SVNDATA/${i%%.po}/LC_MESSAGES/website.po ] ; then
-  echo "exists"
-  msgcat  --use-first WIP.tmp $SVNDATA/${i%%.po}/LC_MESSAGES/website.po >mergeresult.po
-else
-  echo "new file"
-  mkdir -p $SVNDATA/${i%%.po}/LC_MESSAGES
-  cp WIP.tmp mergeresult.po
-fi
-   
-
-msgfmt -c -v mergeresult.po
-
-msgmerge --no-wrap -U -v mergeresult.po $SVNDATA/website.pot
-
-
-# Maybe cd to $SVNDATA   , we continue there anyway
-if [ -f $SVNDATA/${i%%.po}/LC_MESSAGES/website.po ] ; then
-  echo "exists"
-  mv mergeresult.po  $SVNDATA/${i%%.po}/LC_MESSAGES/website.po
-else
-  mv mergeresult.po  $SVNDATA/${i%%.po}/LC_MESSAGES/website.po
-  svn add --parents $SVNDATA/${i%%.po}/LC_MESSAGES/website.po
-fi


=====================================
www.videolan.org/bin/transifex/run_website_po.sh deleted
=====================================
@@ -1,50 +0,0 @@
-#!/bin/bash
-# -x
-
-# The -x might help to debug if you add it to the first line
-# christoph.miebach at web.de
-
-# create a subfolder transifex and configure tx to store the po files there
-cd /home/christoph/videolan/www.videolan.org/transifex
-
-# Nobody will care about line numbers in the pot file
-# So, I create an current pot file and only alert if there are new msgids
-# This will reduce the diff of updates a lot
-# It's not a perfect check (if 2 msgids swap the order, there will be an alert)
-# But then again, just update the pot file!
-cd ..
-svn up
-make update-po
-
-svn diff locale/website.pot > output_from_svn.txt
-
-if grep -q "\+msgstr" output_from_svn.txt ; then
-  echo "New mesages. Or at least moved messages..."
-else
-  echo "make update-po was not needed. Grabbing website.pot again from svn"
-  svn revert locale/website.pot
-  rm output_from_svn.txt
-fi
-cd -
-
-# In this setup, there is a subfolder transifex in www.videolan.org
-tx -d --traceback pull -r vlc-trans.vlc_website  -a  > pulling_log.txt
-# -d   = debug  and 
-# --traceback    just give more verbose output/spam the pulling_log
-
-# pull  = fetch data from transifex
-# -r vlc-trans.vlc_website  = download only the website not everything
-# -a  all translations (including new ones)
-
-
-./to_tx_diff.sh
-# Compares existing po files with the ones from transifex
-
-# Now a short howto for the remaining steps
-echo "For each language there might be some work like this left:"
-echo "cd transifex     ./into_svn.sh mr.po"
-echo 'svn ci -m "Adding po files for gl (Galician), km (Khmer), mr (Marathi)"'
-
-echo "modify Makefile.inc, vlc/Makefile.inc and include/header.php and make sure http://www.videolan.org/index.mr.html exists."
-echo "let translators do a review, modify alternate_lang in include/language.php when it is done"
-echo "RTL is done in include/header.php"


=====================================
www.videolan.org/bin/transifex/to_tx_diff.sh deleted
=====================================
@@ -1,80 +0,0 @@
-#!/bin/bash
-# -x
-
-# christoph.miebach at web.de
-
-LANG=en
-# we parse (for example) msgfmt output, so make sure it's the same everywhere
-# This should provide english output:
-# msgmerge --version
-
-
-# With the right setup, the script could be stored anywhere.
-# For now, I just leave it in the transifex folder
-SVNDATA="/home/christoph/videolan/www.videolan.org/locale"
-TXWEBSITE="/home/christoph/videolan/www.videolan.org/transifex"
-
-
-# Some colors, not sure I use all of them
-blue='\e[0;34m'
-red='\e[0;31m'
-NC='\e[0m' # No Color
-
-
-rm log_merge.txt
-rm log_diff.txt
-rm debug_log.txt
-rm translation-todo.txt
-rm alternate_langs.txt
-#echo -n "\"fr\"" >>alternate_langs.txt
-# alternate_langs will contain the langcodes for complete translations
-
-# processing of a single file with a call to an extra script would be the way to go
-# but since the files are tiny, I don't care
-for i in $( ls *po ); do
-  echo $i  >> debug_log.txt
-  echo $SVNDATA/${i%%.po}/LC_MESSAGES/website.po >> debug_log.txt
-
-  msgfmt -v -c $i &> last_item.txt
-  # cat last_item.txt
-    
-  if grep -q "^0 trans" last_item.txt ; then
-    echo "ignore empty po file..." >> debug_log.txt
-  else
-
-    #61 translated messages, 14 untranslated messages.
-    TRANS_DONE=`sed -n "s/^\([0-9]*\) translated.*/\1/ p" <last_item.txt`
-    REMAINING=`sed -n "s/.* \([0-9]*\) untranslated.*/\1/ p" <last_item.txt`
-      
-    if [ $TRANS_DONE -le 39 ]
-    # if grep -q "untrans" last_item.txt
-    #I promised to pull complete translations, so here I ignore everything else
-    then
-      echo "$i is incomplete. $REMAINING missing. Skipping..."
-      continue
-    fi
-	    
-    cp $TXWEBSITE/$i current_file.po
-    msgmerge --no-wrap -U current_file.po $SVNDATA/${i%%.po}/LC_MESSAGES/website.po &>>log_merge.txt
-    msgmerge --no-wrap -U current_file.po $SVNDATA/website.pot &>>log_merge.txt
-
-
-    diff -Naur $SVNDATA/${i%%.po}/LC_MESSAGES/website.po current_file.po |if grep -q "\+msgstr" ; then
-      if [ -f $SVNDATA/${i%%.po}/LC_MESSAGES/website.po ] ; then
-	echo -e "WORK: Please update this language ($TRANS_DONE done) soon: ${red}$i${NC}"
-	echo "WORK: Please update this language ($TRANS_DONE done) soon: $i" >>translation-todo.txt
-      else
-	echo -e "WORK: Please create this file ($TRANS_DONE done) soon: ${red}$i${NC}"
-	echo "WORK: Please create this file ($TRANS_DONE done) soon: $i" >>translation-todo.txt
-      fi
-
-      diff -Naur $SVNDATA/${i%%.po}/LC_MESSAGES/website.po $TXWEBSITE/$i >> log_diff.txt
-    else
-      echo -n ", \"${i%%.po}\"" >> alternate_langs.txt
-    fi
-    echo $i >> log_diff.txt
-
-  fi
-done
-sort alternate_langs.txt|cat
-rm current_file.po


=====================================
www.videolan.org/layouts/index.html
=====================================
@@ -56,6 +56,25 @@
             </div>
           </a>
         </li>
+        <li class="media">
+          <a href="/projects/dav1d/">
+            <div class="media-left media-middle">
+              <img src="/images/dav1d_logo100x.png" alt="dav1d icon" class="media-object" />
+            </div>
+            <div class="media-body">
+              <span class="productName">dav1d</span>
+              <span class="productDescription">{{ i18n "A fast, cross-platform AV1 decoder, focused on speed, size and correctness." }}</span>
+            </div>
+          </a>
+        </li>
+        <li class="media no-img">
+          <a href="/projects/dav2d/">
+            <div class="media-body">
+              <span class="productName">dav2d</span>
+              <span class="productDescription">{{ i18n "A fast, cross-platform AV2 decoder, based on dav1d." }}</span>
+            </div>
+          </a>
+        </li>
       </ul>
     </div>
     <div class="col-sm-6 col-md-2 padding-bottom-24">
@@ -71,6 +90,7 @@
         <div class="col-xs-4 col-sm-12">
           <a href="/projects/libbluray/" class="noUnderline"><span class="productName padding-bottom-15">libbluray</span></a>
           <a href="/projects/libaacs/" class="noUnderline"><span class="productName padding-bottom-15">libaacs</span></a>
+          <a href="/projects/libplacebo/" class="noUnderline"><span class="productName padding-bottom-15">libplacebo</span></a>
         </div>
         <div class="col-xs-4 col-sm-12">
           <a href="/projects/libdca/" class="noUnderline"><span class="productName padding-bottom-15">libdca</span></a>


=====================================
www.videolan.org/layouts/partials/developers/sidebar.html
=====================================
@@ -1,5 +1,5 @@
 <div class="panel-blue">
-  <h2>Useful Resources</h2>
+  <h2>{{ i18n "Useful Resources" }}</h2>
   <ul>
     {{- range site.Data.developers.sidebar.link }}
     <li><a href="{{ .url }}">{{ .name | safeHTML }}</a></li>


=====================================
www.videolan.org/layouts/partials/release-update/page.html
=====================================
@@ -45,14 +45,14 @@
 
   <div class="row">
     <div class="col-md-6">
-      <h1>Related links</h1>
+      <h1>{{ i18n "Related links" }}</h1>
       <ul>
-        <li><a href="https://code.videolan.org/videolan/vlc/-/raw/3.0.x/NEWS">Changelog</a></li>
+        <li><a href="https://code.videolan.org/videolan/vlc/-/raw/3.0.x/NEWS">{{ i18n "Changelog" }}</a></li>
       </ul>
     </div>
     <div class="col-md-6">
-      <h1>Contact</h1>
-      <p>For any questions related to this release, please <a href="/contact/">contact us</a>.</p>
+      <h1>{{ i18n "Contact" }}</h1>
+      <p>{{ i18n "For any questions related to this release, please" }} <a href="/contact/">{{ i18n "contact us" }}</a>.</p>
     </div>
   </div>
 </div>


=====================================
www.videolan.org/layouts/partials/site/head.html
=====================================
@@ -6,9 +6,10 @@
 
 <meta name="Author" content="VideoLAN" />
 <meta name="Keywords" content="VideoLAN, VLC, VLC player, VLC media player, download, media player, codec, encoder, video player, multimedia, multicast, x262, x264, x265, DVBlast, Windows, Linux, Unix, BeOS, BSD, MacOS, MacOS X, OSX, Android, Streaming, DVD, Matroska, Blu-Ray, FLV, Xvid, MPEG, MPEG2, MPEG4, H264, DivX, MKV, m2ts, open source, free software, floss, free" />
-<meta name="Description" content="{{ .Params.meta_description | default .Title }}" />
+{{- $desc := .Params.meta_description | default .Title -}}
+<meta name="Description" content="{{ (i18n $desc) | default $desc }}" />
 <meta name="apple-itunes-app" content="app-id=650377962" />
-<title>{{ .Title }} - VideoLAN</title>
+<title>{{ (i18n .Title) | default .Title }} - VideoLAN</title>
 
 {{- range .Params.additional_meta }}
 <meta {{ . | safeHTMLAttr }} />


=====================================
www.videolan.org/layouts/projects/list.html
=====================================
@@ -9,7 +9,7 @@
 
   <div class="row">
     <div class="col-md-4 padding-bottom-24">
-      <div class="audienceCallout">For Everyone</div>
+      <div class="audienceCallout">{{ i18n "For Everyone" }}</div>
       <ul class="media-list">
         <li class="media">
           <a href="/vlc/">
@@ -29,7 +29,7 @@
     </div>
 
     <div class="col-md-8 padding-bottom-24">
-      <div class="audienceCallout">For Professionals</div>
+      <div class="audienceCallout">{{ i18n "For Professionals" }}</div>
       <div class="row">
         {{ $half := math.Ceil (div (len $pros) 2.0) | int }}
         <div class="col-md-6 padding-bottom-24">
@@ -51,7 +51,7 @@
   </div>
 
   <div class="row">
-    <div class="col-md-12 audienceCallout">For Developers</div>
+    <div class="col-md-12 audienceCallout">{{ i18n "For Developers" }}</div>
   </div>
   <div class="row">
     {{- $cols := 4 -}}


=====================================
www.videolan.org/layouts/release/single.html
=====================================
@@ -204,7 +204,7 @@
 {{- with $downloads }}
 <div class="container">
   <a name="download" id="getit"></a>
-  <h1>Download VLC</h1>
+  <h1>{{ i18n "Download VLC" }}</h1>
   {{- range $i, $d := . }}
   {{- if and (gt $i 0) (eq (mod $i 2) 0) }}<div class="clearme"></div>{{ end }}
   {{- $url := replace ($d.url | default "") "VERSION" $version -}}
@@ -240,11 +240,11 @@
 
 <div class="container">
   {{- with $changelog }}
-  <h1>Related links</h1>
-  <ul><li><a href="{{ . }}">Changelog</a></li></ul>
+  <h1>{{ i18n "Related links" }}</h1>
+  <ul><li><a href="{{ . }}">{{ i18n "Changelog" }}</a></li></ul>
   <div class="clearme"></div>
   {{- end }}
-  <h1>Contact</h1>
-  <p>For any questions related to this release, please <a href="/contact.html">contact us</a>.</p>
+  <h1>{{ i18n "Contact" }}</h1>
+  <p>{{ i18n "For any questions related to this release, please" }} <a href="/contact.html">{{ i18n "contact us" }}</a>.</p>
 </div>
 {{ end }}


=====================================
www.videolan.org/layouts/vlc/list.html
=====================================
@@ -71,10 +71,10 @@
         <h1><a name="download">{{ i18n "Official Downloads of VLC media player" }}</a></h1>
       </div>
       <div class="col-sm-4">
-        <h2>Windows</h2>
+        <h2>{{ i18n "Windows" }}</h2>
         <div class="windows">{{ i18n "Get VLC for" }} <a href="{{ partial "site/localised-href.html" "/vlc/download-windows.html" }}"><strong>Windows</strong></a></div>
         <div class="winrt">{{ i18n "Get VLC for" }} <a href="/vlc/download-winrt.html"><strong>Windows Store</strong></a></div>
-        <h2>Apple Platforms</h2>
+        <h2>{{ i18n "Apple Platforms" }}</h2>
         <div class="macosx">{{ i18n "Get VLC for" }} <a href="{{ partial "site/localised-href.html" "/vlc/download-macosx.html" }}"><strong>Mac OS X</strong></a></div>
         <div class="ios">{{ i18n "Get VLC for" }} <a href="/vlc/download-ios.html"><strong>iOS</strong></a></div>
         <div class="appletv">{{ i18n "Get VLC for" }} <a href="/vlc/download-appletv.html"><strong>Apple TV</strong></a></div>


=====================================
www.videolan.org/locale/POTFILES deleted
=====================================
@@ -1,7 +0,0 @@
-include/header.php
-include/menus.php
-include/footer.php
-include/package.php
-include/os-specific.php
-index.php
-vlc/index.php


=====================================
www.videolan.org/locale/website.pot
=====================================
@@ -1,377 +1,405 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR VideoLAN
-# This file is distributed under the same license as the vlc package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Translations for www.videolan.org
+# Copyright (C) VideoLAN
+# This file is distributed under the same license as the website.
 #
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: VideoLAN's websites\n"
 "Report-Msgid-Bugs-To: vlc-devel at videolan.org\n"
-"POT-Creation-Date: 2020-02-05 18:13+0100\n"
+"POT-Creation-Date: 2026-05-07 19:17+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: include/header.php:289
-msgid "a project and a"
+#: layouts/index.html:118
+msgid " All our costs are met by donations we receive from our users. If you enjoy using a VideoLAN product, please donate to support us."
 msgstr ""
 
-#: include/header.php:289
-msgid "non-profit organization"
+#: layouts/index.html:66
+msgid "A fast, cross-platform AV1 decoder, focused on speed, size and correctness."
 msgstr ""
 
-#: include/header.php:298 include/footer.php:79
-msgid "Partners"
+#: layouts/index.html:74
+msgid "A fast, cross-platform AV2 decoder, based on dav1d."
 msgstr ""
 
-#: include/menus.php:32
-msgid "Team & Organization"
+#: layouts/vlc/list.html:37
+msgid "Add"
 msgstr ""
 
-#: include/menus.php:33
-msgid "Consulting Services & Partners"
+#: layouts/partials/site/footer.html:33 layouts/partials/site/nav.html:74
+msgid "All Projects"
 msgstr ""
 
-#: include/menus.php:34 include/footer.php:82
-msgid "Events"
+#: layouts/vlc/list.html:77
+msgid "Apple Platforms"
 msgstr ""
 
-#: include/menus.php:35 include/footer.php:77 include/footer.php:111
-msgid "Legal"
+#: layouts/partials/release-update/page.html:50 layouts/release/single.html:244
+msgid "Changelog"
 msgstr ""
 
-#: include/menus.php:36 include/footer.php:81
-msgid "Press center"
+#: layouts/partials/site/footer.html:57
+msgid "Community"
 msgstr ""
 
-#: include/menus.php:37 include/footer.php:78
+#: layouts/vlc/list.html:16
+msgid "Completely Free"
+msgstr ""
+
+#: layouts/partials/site/nav.html:23
+msgid "Consulting Services & Partners"
+msgstr ""
+
+#: layouts/partials/release-update/page.html:54 layouts/release/single.html:247
+msgid "Contact"
+msgstr ""
+
+#: layouts/partials/site/footer.html:74 layouts/partials/site/nav.html:27
 msgid "Contact us"
 msgstr ""
 
-#: include/menus.php:43 include/os-specific.php:279
-msgid "Download"
+#: layouts/index.html:126 layouts/partials/site/nav.html:78
+msgid "Contribute"
 msgstr ""
 
-#: include/menus.php:44 include/footer.php:35
-msgid "Features"
+#: layouts/vlc/list.html:38
+msgid "Create skins with"
 msgstr ""
 
-#: include/menus.php:45 vlc/index.php:57 vlc/index.php:63
+#: layouts/partials/site/nav.html:35 layouts/vlc/list.html:29 layouts/vlc/list.html:35
 msgid "Customize"
 msgstr ""
 
-#: include/menus.php:47 include/footer.php:69
-msgid "Get Goodies"
+#: layouts/index.html:36
+msgid "DVBlast is a simple and powerful MPEG-2/TS demux and streaming application."
 msgstr ""
 
-#: include/menus.php:51
-msgid "Projects"
+#: layouts/index.html:181
+msgid "Development Blogs"
 msgstr ""
 
-#: include/menus.php:71 include/footer.php:41
-msgid "All Projects"
+#: layouts/partials/site/nav.html:81 layouts/partials/site/nav.html:94
+msgid "Donate"
 msgstr ""
 
-#: include/menus.php:75 index.php:168
-msgid "Contribute"
+#: layouts/partials/site/footer.html:63
+msgid "Donate money"
 msgstr ""
 
-#: include/menus.php:77
-msgid "Getting started"
+#: layouts/partials/site/footer.html:64
+msgid "Donate time"
 msgstr ""
 
-#: include/menus.php:78 include/menus.php:96
-msgid "Donate"
+#: layouts/partials/site/nav.html:33 layouts/partials/vlc/download-hero.html:48 layouts/partials/vlc/download-os-hero.html:68
+msgid "Download"
 msgstr ""
 
-#: include/menus.php:79
-msgid "Report a bug"
+#: layouts/release/single.html:207
+msgid "Download VLC"
 msgstr ""
 
-#: include/menus.php:83
-msgid "Support"
+#: content/vlc/download-windows.md:2
+msgid "Download official VLC media player for Windows"
 msgstr ""
 
-#: include/footer.php:33
-msgid "Skins"
+#: layouts/partials/site/footer.html:78 layouts/partials/site/nav.html:24
+msgid "Events"
 msgstr ""
 
-#: include/footer.php:34
+#: layouts/partials/site/footer.html:26
 msgid "Extensions"
 msgstr ""
 
-#: include/footer.php:36 vlc/index.php:83
-msgid "Screenshots"
+#: layouts/partials/site/footer.html:62
+msgid "FAQ"
 msgstr ""
 
-#: include/footer.php:61
-msgid "Community"
+#: layouts/partials/site/footer.html:27 layouts/partials/site/nav.html:34
+msgid "Features"
 msgstr ""
 
-#: include/footer.php:64
+#: layouts/vlc/list.html:13
+msgid "Files, Discs, Webcams, Devices and Streams."
+msgstr ""
+
+#: layouts/index.html:81 layouts/projects/list.html:54
+msgid "For Developers"
+msgstr ""
+
+#: layouts/index.html:10 layouts/projects/list.html:12
+msgid "For Everyone"
+msgstr ""
+
+#: layouts/index.html:27 layouts/projects/list.html:32
+msgid "For Professionals"
+msgstr ""
+
+#: layouts/partials/release-update/page.html:55 layouts/release/single.html:248
+msgid "For any questions related to this release, please"
+msgstr ""
+
+#: layouts/partials/site/footer.html:60
 msgid "Forums"
 msgstr ""
 
-#: include/footer.php:65
-msgid "Mailing-Lists"
+#: layouts/partials/site/footer.html:65 layouts/partials/site/nav.html:37
+msgid "Get Goodies"
 msgstr ""
 
-#: include/footer.php:66
-msgid "FAQ"
+#: layouts/partials/site/footer.html:80
+msgid "Get Involved"
 msgstr ""
 
-#: include/footer.php:67
-msgid "Donate money"
+#: layouts/vlc/list.html:100 layouts/vlc/list.html:101 layouts/vlc/list.html:102 layouts/vlc/list.html:103 layouts/vlc/list.html:104 layouts/vlc/list.html:75 layouts/vlc/list.html:76 layouts/vlc/list.html:78 layouts/vlc/list.html:79 layouts/vlc/list.html:80 layouts/vlc/list.html:86 layouts/vlc/list.html:87 layouts/vlc/list.html:88 layouts/vlc/list.html:89 layouts/vlc/list.html:90 layouts/vlc/list.html:91 layouts/vlc/list.html:92 layouts/vlc/list.html:93 layouts/vlc/list.html:97 layouts/vlc/list.html:98 layouts/vlc/list.html:99
+msgid "Get VLC for"
 msgstr ""
 
-#: include/footer.php:68
-msgid "Donate time"
+#: layouts/release/single.html:99
+msgid "Get VLC now!"
 msgstr ""
 
-#: include/footer.php:75
-msgid "Project and Organization"
+#: layouts/partials/site/nav.html:80
+msgid "Getting started"
 msgstr ""
 
-#: include/footer.php:76
-msgid "Team"
+#: layouts/index.html:106
+msgid "Help us out!"
 msgstr ""
 
-#: include/footer.php:80
-msgid "Mirrors"
+#: layouts/vlc/list.html:39
+msgid "Install"
 msgstr ""
 
-#: include/footer.php:83
-msgid "Security center"
+#: layouts/index.html:119 layouts/index.html:136 layouts/index.html:152
+msgid "Learn More"
 msgstr ""
 
-#: include/footer.php:84
-msgid "Get Involved"
+#: layouts/partials/site/footer.html:108 layouts/partials/site/footer.html:73 layouts/partials/site/nav.html:25
+msgid "Legal"
 msgstr ""
 
-#: include/footer.php:85
-msgid "News"
+#: layouts/partials/site/footer.html:61
+msgid "Mailing-Lists"
 msgstr ""
 
-#: include/os-specific.php:103
-msgid "Download VLC"
+#: layouts/partials/site/footer.html:76
+msgid "Mirrors"
 msgstr ""
 
-#: include/os-specific.php:109 include/os-specific.php:295 vlc/index.php:168
-msgid "Other Systems"
+#: layouts/index.html:177
+msgid "More News"
 msgstr ""
 
-#: include/os-specific.php:260
-msgid "downloads so far"
+#: layouts/partials/site/footer.html:81
+msgid "News"
 msgstr ""
 
-#: include/os-specific.php:648
-msgid ""
-"VLC is a free and open source cross-platform multimedia player and framework "
-"that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and "
-"various streaming protocols."
+#: layouts/index.html:164
+msgid "News & Updates"
 msgstr ""
 
-#: include/os-specific.php:652
-msgid ""
-"VLC is a free and open source cross-platform multimedia player and framework "
-"that plays most multimedia files, and various streaming protocols."
+#: content/vlc/download-macosx.md:2
+msgid "Official Download of VLC media player for Mac OS X"
 msgstr ""
 
-#: index.php:4
-msgid "VLC: Official site - Free multimedia solutions for all OS!"
+#: layouts/vlc/list.html:71
+msgid "Official Downloads of VLC media player"
 msgstr ""
 
-#: index.php:26
-msgid "Other projects from VideoLAN"
+#: content/vlc/_index.md:2
+msgid "Official download of VLC media player, the best Open Source player"
 msgstr ""
 
-#: index.php:30
-msgid "For Everyone"
+#: layouts/partials/vlc/download-hero.html:59 layouts/vlc/list.html:96
+msgid "Other Systems"
 msgstr ""
 
-#: index.php:40
-msgid ""
-"VLC is a powerful media player playing most of the media codecs and video "
-"formats out there."
+#: layouts/index.html:7
+msgid "Other projects from VideoLAN"
 msgstr ""
 
-#: index.php:53
-msgid ""
-"VideoLAN Movie Creator is a non-linear editing software for video creation."
+#: layouts/partials/site/footer.html:75 layouts/partials/site/sponsors.html:3
+msgid "Partners"
 msgstr ""
 
-#: index.php:62
-msgid "For Professionals"
+#: layouts/vlc/list.html:13
+msgid "Plays everything"
 msgstr ""
 
-#: index.php:72
-msgid ""
-"DVBlast is a simple and powerful MPEG-2/TS demux and streaming application."
+#: layouts/vlc/list.html:14
+msgid "Plays most codecs with no codec packs needed"
 msgstr ""
 
-#: index.php:82
-msgid ""
-"multicat is a set of tools designed to easily and efficiently manipulate "
-"multicast streams and TS."
+#: layouts/partials/site/footer.html:77 layouts/partials/site/nav.html:26
+msgid "Press center"
 msgstr ""
 
-#: index.php:95
-msgid ""
-"x264 is a free application for encoding video streams into the H.264/MPEG-4 "
-"AVC format."
+#: layouts/partials/site/footer.html:71
+msgid "Project and Organization"
 msgstr ""
 
-#: index.php:104
-msgid "For Developers"
+#: layouts/partials/site/nav.html:41
+msgid "Projects"
 msgstr ""
 
-#: index.php:140
-msgid "View All Projects"
+#: layouts/partials/release-update/page.html:48 layouts/release/single.html:243
+msgid "Related links"
 msgstr ""
 
-#: index.php:144
-msgid "Help us out!"
+#: layouts/partials/site/nav.html:82
+msgid "Report a bug"
 msgstr ""
 
-#: index.php:148
-msgid "donate"
+#: layouts/vlc/list.html:15
+msgid "Runs on all platforms"
 msgstr ""
 
-#: index.php:156
-msgid "VideoLAN is a non-profit organization."
+#: layouts/partials/site/footer.html:28 layouts/vlc/list.html:50
+msgid "Screenshots"
 msgstr ""
 
-#: index.php:157
-msgid ""
-" All our costs are met by donations we receive from our users. If you enjoy "
-"using a VideoLAN product, please donate to support us."
+#: layouts/partials/site/footer.html:79
+msgid "Security center"
 msgstr ""
 
-#: index.php:160 index.php:180 index.php:198
-msgid "Learn More"
+#: layouts/vlc/list.html:11 layouts/vlc/list.html:8
+msgid "Simple, fast and powerful"
 msgstr ""
 
-#: index.php:176
-msgid "VideoLAN is open-source software."
+#: layouts/partials/site/footer.html:25
+msgid "Skins"
 msgstr ""
 
-#: index.php:177
-msgid ""
-"This means that if you have the skill and the desire to improve one of our "
-"products, your contributions are welcome"
+#: layouts/index.html:202
+msgid "Social media"
+msgstr ""
+
+#: layouts/vlc/list.html:81
+msgid "Sources"
 msgstr ""
 
-#: index.php:187
+#: layouts/index.html:143
 msgid "Spread the Word"
 msgstr ""
 
-#: index.php:195
-msgid ""
-"We feel that VideoLAN has the best video software available at the best "
-"price: free. If you agree please help spread the word about our software."
+#: layouts/partials/site/nav.html:85
+msgid "Support"
 msgstr ""
 
-#: index.php:215
-msgid "News & Updates"
+#: layouts/partials/site/footer.html:72
+msgid "Team"
 msgstr ""
 
-#: index.php:218
-msgid "More News"
+#: layouts/partials/site/nav.html:22
+msgid "Team & Organization"
 msgstr ""
 
-#: index.php:222
-msgid "Development Blogs"
+#: layouts/index.html:135
+msgid "This means that if you have the skill and the desire to improve one of our products, your contributions are welcome"
 msgstr ""
 
-#: index.php:251
-msgid "Social media"
+#: layouts/partials/developers/sidebar.html:2
+msgid "Useful Resources"
 msgstr ""
 
-#: vlc/index.php:3
-msgid "Official download of VLC media player, the best Open Source player"
+#: layouts/partials/vlc/download-hero.html:39
+msgid "VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols."
 msgstr ""
 
-#: vlc/index.php:21
-msgid "Get VLC for"
+#: layouts/partials/vlc/download-hero.html:42
+msgid "VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files, and various streaming protocols."
 msgstr ""
 
-#: vlc/index.php:29 vlc/index.php:32
-msgid "Simple, fast and powerful"
+#: layouts/index.html:19
+msgid "VLC is a powerful media player playing most of the media codecs and video formats out there."
 msgstr ""
 
-#: vlc/index.php:35
-msgid "Plays everything"
+#: layouts/vlc/list.html:38
+msgid "VLC skin editor"
 msgstr ""
 
-#: vlc/index.php:35
-msgid "Files, Discs, Webcams, Devices and Streams."
+#: content/_index.md:2
+msgid "VLC: Official site - Free multimedia solutions for all OS!"
 msgstr ""
 
-#: vlc/index.php:38
-msgid "Plays most codecs with no codec packs needed"
+#: layouts/index.html:117
+msgid "VideoLAN is a non-profit organization."
 msgstr ""
 
-#: vlc/index.php:41
-msgid "Runs on all platforms"
+#: layouts/index.html:134
+msgid "VideoLAN is open-source software."
 msgstr ""
 
-#: vlc/index.php:44
-msgid "Completely Free"
+#: layouts/index.html:102
+msgid "View All Projects"
 msgstr ""
 
-#: vlc/index.php:44
-msgid "no spyware, no ads and no user tracking."
+#: layouts/vlc/list.html:61
+msgid "View all screenshots"
 msgstr ""
 
-#: vlc/index.php:47
-msgid "learn more"
+#: layouts/index.html:151
+msgid "We feel that VideoLAN has the best video software available at the best price: free. If you agree please help spread the word about our software."
 msgstr ""
 
-#: vlc/index.php:66
-msgid "Add"
+#: layouts/vlc/list.html:74
+msgid "Windows"
 msgstr ""
 
-#: vlc/index.php:66
-msgid "skins"
+#: layouts/vlc/list.html:82
+msgid "You can also directly get the"
 msgstr ""
 
-#: vlc/index.php:69
-msgid "Create skins with"
+#: layouts/_default/baseof.html:11
+msgid "a project and a"
 msgstr ""
 
-#: vlc/index.php:69
-msgid "VLC skin editor"
+#: layouts/partials/release-update/page.html:55 layouts/release/single.html:248
+msgid "contact us"
 msgstr ""
 
-#: vlc/index.php:72
-msgid "Install"
+#: layouts/index.html:109 layouts/partials/site/donate-form.html:8 layouts/shortcodes/stripe-donate.html:8
+msgid "donate"
 msgstr ""
 
-#: vlc/index.php:72
+#: layouts/partials/vlc/download-hero.html:86 layouts/partials/vlc/download-os-hero.html:108
+msgid "downloads so far"
+msgstr ""
+
+#: layouts/vlc/list.html:39
 msgid "extensions"
 msgstr ""
 
-#: vlc/index.php:126
-msgid "View all screenshots"
+#: layouts/vlc/list.html:18
+msgid "learn more"
 msgstr ""
 
-#: vlc/index.php:135
-msgid "Official Downloads of VLC media player"
+#: layouts/index.html:44
+msgid "multicat is a set of tools designed to easily and efficiently manipulate multicast streams and TS."
 msgstr ""
 
-#: vlc/index.php:146
-msgid "Sources"
+#: layouts/vlc/list.html:16
+msgid "no spyware, no ads and no user tracking."
 msgstr ""
 
-#: vlc/index.php:147
-msgid "You can also directly get the"
+#: layouts/_default/baseof.html:11
+msgid "non-profit organization"
 msgstr ""
 
-#: vlc/index.php:148
+#: layouts/vlc/list.html:37
+msgid "skins"
+msgstr ""
+
+#: layouts/vlc/list.html:82
 msgid "source code"
 msgstr ""
+
+#: layouts/index.html:55
+msgid "x264 is a free application for encoding video streams into the H.264/MPEG-4 AVC format."
+msgstr ""



View it on GitLab: https://code.videolan.org/VideoLAN.org/websites/-/compare/0c1ebdd9d29805cdf7398103bc19aa5df3cb1e10...a14ff27ee632830a62b792190ea3ee020cca6389

-- 
View it on GitLab: https://code.videolan.org/VideoLAN.org/websites/-/compare/0c1ebdd9d29805cdf7398103bc19aa5df3cb1e10...a14ff27ee632830a62b792190ea3ee020cca6389
You're receiving this email because of your account on code.videolan.org.




More information about the www-doc mailing list