aboutsummaryrefslogtreecommitdiff
path: root/locale/eo/LC_MESSAGES/_articles
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2018-07-17-running-guix-on-nixos.po129
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2018-08-01-verifying-npm-ci-reproducibility.po44
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2018-12-21-using-youtube-dl-to-manage-youtube-subscriptions.po62
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2019-06-02-using-nixos-as-an-stateless-workstation.po9
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2020-08-10-guix-inside-sourcehut-builds-sr-ht-ci.po72
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2020-08-31-the-database-i-wish-i-had.po37
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2020-10-05-cargo2nix-dramatically-simpler-rust-in-nix.po34
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2020-10-05-swift2nix-run-swift-inside-nix-builds.po36
-rw-r--r--locale/eo/LC_MESSAGES/_articles/2020-10-19-feature-flags-differences-between-backend-frontend-and-mobile.po18
9 files changed, 441 insertions, 0 deletions
diff --git a/locale/eo/LC_MESSAGES/_articles/2018-07-17-running-guix-on-nixos.po b/locale/eo/LC_MESSAGES/_articles/2018-07-17-running-guix-on-nixos.po
index ad29a0a..dfc690b 100644
--- a/locale/eo/LC_MESSAGES/_articles/2018-07-17-running-guix-on-nixos.po
+++ b/locale/eo/LC_MESSAGES/_articles/2018-07-17-running-guix-on-nixos.po
@@ -99,3 +99,132 @@ msgstr ""
msgid "Happy Guix/Nix hacking!"
msgstr ""
+
+msgid ""
+"groupadd --system guixbuild\n"
+"for i in `seq -w 1 10`;\n"
+"do\n"
+" useradd -g guixbuild -G guixbuild \\\n"
+" -d /var/empty -s `which nologin` \\\n"
+" -c \"Guix build user $i\" --system \\\n"
+" guixbuilder$i;\n"
+"done\n"
+msgstr ""
+
+msgid ""
+"$ sudo nixos-rebuild switch\n"
+"(...)\n"
+"removing user ‘guixbuilder7’\n"
+"removing user ‘guixbuilder3’\n"
+"removing user ‘guixbuilder10’\n"
+"removing user ‘guixbuilder1’\n"
+"removing user ‘guixbuilder6’\n"
+"removing user ‘guixbuilder9’\n"
+"removing user ‘guixbuilder4’\n"
+"removing user ‘guixbuilder2’\n"
+"removing user ‘guixbuilder8’\n"
+"removing user ‘guixbuilder5’\n"
+"(...)\n"
+msgstr ""
+
+msgid ""
+"{ config, pkgs, ...}:\n"
+"\n"
+"{\n"
+"\n"
+" # ... NixOS usual config ellided ...\n"
+"\n"
+" users = {\n"
+" mutableUsers = false;\n"
+"\n"
+" extraUsers =\n"
+" let\n"
+" andrehUser = {\n"
+" andreh = {\n"
+" # my custom user config\n"
+" };\n"
+" };\n"
+" buildUser = (i:\n"
+" {\n"
+" \"guixbuilder${i}\" = { # guixbuilder$i\n"
+" group = \"guixbuild\"; # -g guixbuild\n"
+" extraGroups = [\"guixbuild\"]; # -G guixbuild\n"
+" home = \"/var/empty\"; # -d /var/empty\n"
+" shell = pkgs.nologin; # -s `which nologin`\n"
+" description = \"Guix build user ${i}\"; # -c \"Guix buid user $i\"\n"
+" isSystemUser = true; # --system\n"
+" };\n"
+" }\n"
+" );\n"
+" in\n"
+" # merge all users\n"
+" pkgs.lib.fold (str: acc: acc // buildUser str)\n"
+" andrehUser\n"
+" # for i in `seq -w 1 10`\n"
+" (map (pkgs.lib.fixedWidthNumber 2) (builtins.genList (n: n+1) 10));\n"
+"\n"
+" extraGroups.guixbuild = {\n"
+" name = \"guixbuild\";\n"
+" };\n"
+" };\n"
+"}\n"
+msgstr ""
+
+msgid ""
+"# This is a \"service unit file\" for the systemd init system to launch\n"
+"# 'guix-daemon'. Drop it in /etc/systemd/system or similar to have\n"
+"# 'guix-daemon' automatically started.\n"
+"\n"
+"[Unit]\n"
+"Description=Build daemon for GNU Guix\n"
+"\n"
+"[Service]\n"
+"ExecStart=/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild\n"
+"Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale\n"
+"RemainAfterExit=yes\n"
+"StandardOutput=syslog\n"
+"StandardError=syslog\n"
+"\n"
+"# See <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.\n"
+"# Some package builds (for example, go@1.8.1) may require even more than\n"
+"# 1024 tasks.\n"
+"TasksMax=8192\n"
+"\n"
+"[Install]\n"
+"WantedBy=multi-user.target\n"
+msgstr ""
+
+msgid ""
+"guix-daemon = {\n"
+" enable = true;\n"
+" description = \"Build daemon for GNU Guix\";\n"
+" serviceConfig = {\n"
+" ExecStart = \"/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild\";\n"
+" Environment=\"GUIX_LOCPATH=/root/.guix-profile/lib/locale\";\n"
+" RemainAfterExit=\"yes\";\n"
+" StandardOutput=\"syslog\";\n"
+" StandardError=\"syslog\";\n"
+" TaskMax= \"8192\";\n"
+" };\n"
+" wantedBy = [ \"multi-user.target\" ];\n"
+"};\n"
+msgstr ""
+
+msgid ""
+"$ guix package -i hello\n"
+"The following package will be installed:\n"
+" hello 2.10 /gnu/store/bihfrh609gkxb9dp7n96wlpigiv3krfy-hello-2.10\n"
+"\n"
+"substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%\n"
+"The following derivations will be built:\n"
+" /gnu/store/nznmdn6inpwxnlkrasydmda4s2vsp9hg-profile.drv\n"
+" /gnu/store/vibqrvw4c8lacxjrkqyzqsdrmckv77kq-fonts-dir.drv\n"
+" /gnu/store/hi8alg7wi0wgfdi3rn8cpp37zhx8ykf3-info-dir.drv\n"
+" /gnu/store/cvkbp378cvfjikz7mjymhrimv7j12p0i-ca-certificate-bundle.drv\n"
+" /gnu/store/d62fvxymnp95rzahhmhf456bsf0xg1c6-manual-database.drv\n"
+"Creating manual page database...\n"
+"1 entries processed in 0.0 s\n"
+"2 packages in profile\n"
+"$ hello\n"
+"Hello, world!\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2018-08-01-verifying-npm-ci-reproducibility.po b/locale/eo/LC_MESSAGES/_articles/2018-08-01-verifying-npm-ci-reproducibility.po
index e1097b7..9503fff 100644
--- a/locale/eo/LC_MESSAGES/_articles/2018-08-01-verifying-npm-ci-reproducibility.po
+++ b/locale/eo/LC_MESSAGES/_articles/2018-08-01-verifying-npm-ci-reproducibility.po
@@ -167,3 +167,47 @@ msgid ""
"[^lerna-package-lock]: Finding a big known repo that actually committed the "
"`package-lock.json` file was harder than I expected."
msgstr ""
+
+msgid ""
+"merkle-tree () {\n"
+" dirname=\"${1-.}\"\n"
+" pushd \"$dirname\"\n"
+" find . -type f | \\\n"
+" sort | \\\n"
+" xargs -I{} sha256sum \"{}\" | \\\n"
+" sha256sum | \\\n"
+" awk '{print $1}'\n"
+" popd\n"
+"}\n"
+msgstr ""
+
+msgid ""
+"mkdir /tmp/merkle-tree-test/\n"
+"cd /tmp/merkle-tree-test/\n"
+"mkdir -p a/b/ a/c/ d/\n"
+"echo \"one\" > a/b/one.txt\n"
+"echo \"two\" > a/c/two.txt\n"
+"echo \"three\" > d/three.txt\n"
+"merkle-tree . # output is be343bb01fe00aeb8fef14a3e16b1c3d1dccbf86d7e41b4753e6ccb7dc3a57c3\n"
+"merkle-tree . # output still is be343bb01fe00aeb8fef14a3e16b1c3d1dccbf86d7e41b4753e6ccb7dc3a57c3\n"
+"echo \"four\" > d/four.txt\n"
+"merkle-tree . # output is now b5464b958969ed81815641ace96b33f7fd52c20db71a7fccc45a36b3a2ae4d4c\n"
+"rm d/four.txt\n"
+"merkle-tree . # output back to be343bb01fe00aeb8fef14a3e16b1c3d1dccbf86d7e41b4753e6ccb7dc3a57c3\n"
+"echo \"hidden-five\" > a/b/one.txt\n"
+"merkle-tree . # output changed 471fae0d074947e4955e9ac53e95b56e4bc08d263d89d82003fb58a0ffba66f5\n"
+msgstr ""
+
+msgid ""
+"cd /tmp/\n"
+"git clone https://github.com/lerna/lerna.git\n"
+"cd lerna/\n"
+"git checkout 57ff865c0839df75dbe1974971d7310f235e1109\n"
+"npm ci\n"
+"merkle-tree node_modules/ # outputs 11e218c4ac32fac8a9607a8da644fe870a25c99821167d21b607af45699afafa\n"
+"rm -rf node_modules/\n"
+"npm ci\n"
+"merkle-tree node_modules/ # outputs 11e218c4ac32fac8a9607a8da644fe870a25c99821167d21b607af45699afafa\n"
+"npm ci # test if it also works with an existing node_modules/ folder\n"
+"merkle-tree node_modules/ # outputs 11e218c4ac32fac8a9607a8da644fe870a25c99821167d21b607af45699afafa\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2018-12-21-using-youtube-dl-to-manage-youtube-subscriptions.po b/locale/eo/LC_MESSAGES/_articles/2018-12-21-using-youtube-dl-to-manage-youtube-subscriptions.po
index 86f62ae..52b5a40 100644
--- a/locale/eo/LC_MESSAGES/_articles/2018-12-21-using-youtube-dl-to-manage-youtube-subscriptions.po
+++ b/locale/eo/LC_MESSAGES/_articles/2018-12-21-using-youtube-dl-to-manage-youtube-subscriptions.po
@@ -316,3 +316,65 @@ msgid ""
"could be better, but also how much it has improved over the last years, I "
"say it's reasonable."
msgstr ""
+
+msgid ""
+"$ youtube-dl https://www.youtube.com/watch?v=rnMYZnY3uLA\n"
+"[youtube] rnMYZnY3uLA: Downloading webpage\n"
+"[youtube] rnMYZnY3uLA: Downloading video info webpage\n"
+"[download] Destination: A Origem da Vida _ Nerdologia-rnMYZnY3uLA.mp4\n"
+"[download] 100% of 32.11MiB in 00:12\n"
+msgstr ""
+
+msgid ""
+"$ youtube-dl \"https://www.youtube.com/channel/UClu474HMt895mVxZdlIHXEA\" \\\n"
+" --download-archive ~/Nextcloud/cache/youtube-dl-seen.conf \\\n"
+" --prefer-free-formats \\\n"
+" --playlist-end 20 \\\n"
+" --write-description \\\n"
+" --output \"~/Downloads/yt-dl/%(uploader)s/%(upload_date)s - %(title)s.%(ext)s\"\n"
+msgstr ""
+
+msgid ""
+"#!/bin/sh\n"
+"\n"
+"export DEFAULT_PLAYLIST_END=15\n"
+"\n"
+"download() {\n"
+" youtube-dl \"$1\" \\\n"
+" --download-archive ~/Nextcloud/cache/youtube-dl-seen.conf \\\n"
+" --prefer-free-formats \\\n"
+" --playlist-end $2 \\\n"
+" --write-description \\\n"
+" --output \"~/Downloads/yt-dl/%(uploader)s/%(upload_date)s - %(title)s.%(ext)s\"\n"
+"}\n"
+"export -f download\n"
+"\n"
+"\n"
+"download_user() {\n"
+" download \"https://www.youtube.com/user/$1\" ${2-$DEFAULT_PLAYLIST_END}\n"
+"}\n"
+"export -f download_user\n"
+"\n"
+"\n"
+"download_channel() {\n"
+" download \"https://www.youtube.com/channel/$1\" ${2-$DEFAULT_PLAYLIST_END}\n"
+"}\n"
+"export -f download_channel\n"
+"\n"
+"\n"
+"download_playlist() {\n"
+" download \"https://www.youtube.com/playlist?list=$1\" ${2-$DEFAULT_PLAYLIST_END}\n"
+"}\n"
+"export -f download_playlist\n"
+msgstr ""
+
+msgid ""
+"#!/bin/sh\n"
+"\n"
+"download_user ClojureTV 15\n"
+"download_channel \"UCmEClzCBDx-vrt0GuSKBd9g\" 100\n"
+"download_playlist \"PLqG7fA3EaMRPzL5jzd83tWcjCUH9ZUsbX\" 15\n"
+msgstr ""
+
+msgid "$ uniq youtube-dl-seen.conf > youtube-dl-seen.conf\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2019-06-02-using-nixos-as-an-stateless-workstation.po b/locale/eo/LC_MESSAGES/_articles/2019-06-02-using-nixos-as-an-stateless-workstation.po
index 6aaef22..e99d4e7 100644
--- a/locale/eo/LC_MESSAGES/_articles/2019-06-02-using-nixos-as-an-stateless-workstation.po
+++ b/locale/eo/LC_MESSAGES/_articles/2019-06-02-using-nixos-as-an-stateless-workstation.po
@@ -194,3 +194,12 @@ msgid ""
"realising that I can't pinpoint the moment when I decided to switch to "
"NixOS. It's like I had a distant past when this wasn't true."
msgstr ""
+
+msgid ""
+"# sample ~/.mrconfig file snippet\n"
+"[dev/guix/guix]\n"
+"checkout =\n"
+" git clone https://git.savannah.gnu.org/git/guix.git guix\n"
+" cd guix/\n"
+" git config sendemail.to guix-patches@gnu.org\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2020-08-10-guix-inside-sourcehut-builds-sr-ht-ci.po b/locale/eo/LC_MESSAGES/_articles/2020-08-10-guix-inside-sourcehut-builds-sr-ht-ci.po
index 64bc417..2396848 100644
--- a/locale/eo/LC_MESSAGES/_articles/2020-08-10-guix-inside-sourcehut-builds-sr-ht-ci.po
+++ b/locale/eo/LC_MESSAGES/_articles/2020-08-10-guix-inside-sourcehut-builds-sr-ht-ci.po
@@ -80,3 +80,75 @@ msgid ""
" to make something that just \"works on my machine\" or add a maintainence "
"burden to the author. I didn't look at it again recently, though."
msgstr ""
+
+msgid ""
+"#!/usr/bin/env bash\n"
+"set -x\n"
+"set -Eeuo pipefail\n"
+"\n"
+"VERSION='1.0.1'\n"
+"SYSTEM='x86_64-linux'\n"
+"BINARY=\"guix-binary-${VERSION}.${SYSTEM}.tar.xz\"\n"
+"\n"
+"cd /tmp\n"
+"wget \"https://ftp.gnu.org/gnu/guix/${BINARY}\"\n"
+"tar -xf \"${BINARY}\"\n"
+"\n"
+"sudo mv var/guix /var/\n"
+"sudo mv gnu /\n"
+"sudo mkdir -p ~root/.config/guix\n"
+"sudo ln -fs /var/guix/profiles/per-user/root/current-guix ~root/.config/guix/current\n"
+"\n"
+"GUIX_PROFILE=\"$(echo ~root)/.config/guix/current\"\n"
+"source \"${GUIX_PROFILE}/etc/profile\"\n"
+"\n"
+"groupadd --system guixbuild\n"
+"for i in $(seq -w 1 10);\n"
+"do\n"
+" useradd -g guixbuild \\\n"
+" -G guixbuild \\\n"
+" -d /var/empty \\\n"
+" -s \"$(command -v nologin)\" \\\n"
+" -c \"Guix build user ${i}\" --system \\\n"
+" \"guixbuilder${i}\";\n"
+"done\n"
+"\n"
+"mkdir -p /usr/local/bin\n"
+"cd /usr/local/bin\n"
+"ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix .\n"
+"ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon .\n"
+"\n"
+"guix archive --authorize < ~root/.config/guix/current/share/guix/ci.guix.gnu.org.pub\n"
+msgstr ""
+
+msgid ""
+"#!/usr/bin/env bash\n"
+"set -x\n"
+"set -Eeuo pipefail\n"
+"\n"
+"sudo guix-daemon --build-users-group=guixbuild &\n"
+"guix pull\n"
+"guix package -u\n"
+"guix --version\n"
+msgstr ""
+
+msgid ""
+"image: debian/stable\n"
+"packages:\n"
+" - wget\n"
+"sources:\n"
+" - https://git.sr.ht/~euandreh/songbooks\n"
+"tasks:\n"
+" - install-guix: |\n"
+" cd ./songbooks/\n"
+" ./scripts/install-guix.sh\n"
+" ./scripts/start-guix.sh\n"
+" echo 'sudo guix-daemon --build-users-group=guixbuild &' >> ~/.buildenv\n"
+" echo 'export PATH=\"${HOME}/.config/guix/current/bin${PATH:+:}$PATH\"' >> ~/.buildenv\n"
+" - tests: |\n"
+" cd ./songbooks/\n"
+" guix environment -m build-aux/guix.scm -- make check\n"
+" - docs: |\n"
+" cd ./songbooks/\n"
+" guix environment -m build-aux/guix.scm -- make publish-dist\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2020-08-31-the-database-i-wish-i-had.po b/locale/eo/LC_MESSAGES/_articles/2020-08-31-the-database-i-wish-i-had.po
index 58de095..216733d 100644
--- a/locale/eo/LC_MESSAGES/_articles/2020-08-31-the-database-i-wish-i-had.po
+++ b/locale/eo/LC_MESSAGES/_articles/2020-08-31-the-database-i-wish-i-had.po
@@ -360,3 +360,40 @@ msgid ""
"inbox/%3C010101744a592b75-1dce9281-f0b8-4226-9d50-fd2c7901fa72-000000%40us-"
"west-2.amazonses.com%3E)."
msgstr ""
+
+msgid ""
+"This makes me consider it as a storage backend all by itself. I\n"
+"initially considered having an SQLite storage backend as one implementation\n"
+"of the POSIX filesystem storage API that I mentioned. My goal was to rely on\n"
+"it so I could validate the correctness of the actual implementation, given\n"
+"SQLite's robustness.\n"
+"\n"
+"However it may even better to just use SQLite, and get an ACID backend\n"
+"without recreating a big part of SQLite from scratch. In fact, both Datomic\n"
+"and PouchDB didn't create an storage backend for themselves, they just\n"
+"plugged on what already existed and already worked. I'm beginning to think\n"
+"that it would be wiser to just do the same, and drop entirely the from\n"
+"scratch implementation that I mentioned.\n"
+"\n"
+"That's not to say that adding an IndexedDB compatibility layer to SQLite\n"
+"would be enough to make it fit the other requirements I mention on this\n"
+"page. SQLite still is an implementation of a update-in-place, SQL,\n"
+"table-oriented database. It is probably true that cherry-picking the\n"
+"relevant parts of SQLite (like storage access, consistency, crash recovery,\n"
+"parser generator, *etc.*) and leaving out the unwanted parts (SQL, tables,\n"
+"threading, *etc.*) would be better than including the full SQLite stack, but\n"
+"that's simply an optimization. Both could even coexist, if desired.\n"
+"\n"
+"SQLite would have to be treated similarly to how Datomic treats SQL\n"
+"databases: instead of having a table for each entities, spread attributes\n"
+"over the tables, *etc.*, it treats SQL databases as a key-value storage so it\n"
+"doesn't have to re-implement interacting with the disk that other databases\n"
+"do well.\n"
+"\n"
+"The tables would contain blocks of binary data, so there isn't a difference\n"
+"on how the SQLite storage backend behaves and how the IndexedDB storage\n"
+"backend behaves, much like how Datomic works the same regardless of the\n"
+"storage backend, same for PouchDB.\n"
+"\n"
+"I welcome corrections on what I said above, too.\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2020-10-05-cargo2nix-dramatically-simpler-rust-in-nix.po b/locale/eo/LC_MESSAGES/_articles/2020-10-05-cargo2nix-dramatically-simpler-rust-in-nix.po
index 8c0231c..e8f3d6e 100644
--- a/locale/eo/LC_MESSAGES/_articles/2020-10-05-cargo2nix-dramatically-simpler-rust-in-nix.po
+++ b/locale/eo/LC_MESSAGES/_articles/2020-10-05-cargo2nix-dramatically-simpler-rust-in-nix.po
@@ -55,3 +55,37 @@ msgstr ""
msgid "Report back if you wish. Again, patches welcome."
msgstr ""
+
+msgid ""
+"let\n"
+" niv-sources = import ./nix/sources.nix;\n"
+" mozilla-overlay = import niv-sources.nixpkgs-mozilla;\n"
+" pkgs = import niv-sources.nixpkgs { overlays = [ mozilla-overlay ]; };\n"
+" src = pkgs.nix-gitignore.gitignoreSource [ ] ./.;\n"
+" cargo2nix = pkgs.callPackage niv-sources.cargo2nix {\n"
+" lockfile = ./Cargo.lock;\n"
+" };\n"
+"in pkgs.stdenv.mkDerivation {\n"
+" inherit src;\n"
+" name = \"cargo-test\";\n"
+" buildInputs = [ pkgs.latest.rustChannels.nightly.rust ];\n"
+" phases = [ \"unpackPhase\" \"buildPhase\" ];\n"
+" buildPhase = ''\n"
+" # Setup dependencies path to satisfy Cargo\n"
+" mkdir .cargo/\n"
+" ln -s ${cargo2nix.env.cargo-config} .cargo/config\n"
+" ln -s ${cargo2nix.env.vendor} vendor\n"
+"\n"
+" # Run the tests\n"
+" cargo test\n"
+" touch $out\n"
+" '';\n"
+"}\n"
+msgstr ""
+
+msgid ""
+"pushd \"$(mktemp -d)\"\n"
+"git clone https://git.euandreh.xyz/cargo2nix-demo\n"
+"cd cargo2nix-demo/\n"
+"nix-build\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2020-10-05-swift2nix-run-swift-inside-nix-builds.po b/locale/eo/LC_MESSAGES/_articles/2020-10-05-swift2nix-run-swift-inside-nix-builds.po
index e9dbef6..5719f51 100644
--- a/locale/eo/LC_MESSAGES/_articles/2020-10-05-swift2nix-run-swift-inside-nix-builds.po
+++ b/locale/eo/LC_MESSAGES/_articles/2020-10-05-swift2nix-run-swift-inside-nix-builds.po
@@ -246,3 +246,39 @@ msgid ""
"checked-in the repository at all. It could be always generated on the fly, "
"much like how Swift's `dependencies-state.json` is."
msgstr ""
+
+msgid ""
+"let\n"
+" niv-sources = import ./nix/sources.nix;\n"
+" pkgs = import niv-sources.nixpkgs { };\n"
+" src = pkgs.nix-gitignore.gitignoreSource [ ] ./.;\n"
+" swift2nix = pkgs.callPackage niv-sources.swift2nix {\n"
+" package-resolved = ./Package.resolved;\n"
+" };\n"
+"in pkgs.stdenv.mkDerivation {\n"
+" inherit src;\n"
+" name = \"swift-test\";\n"
+" buildInputs = with pkgs; [ swift ];\n"
+" phases = [ \"unpackPhase\" \"buildPhase\" ];\n"
+" buildPhase = ''\n"
+" # Setup dependencies path to satisfy SwiftPM\n"
+" mkdir .build\n"
+" ln -s ${swift2nix.env.dependencies-state-json} .build/dependencies-state.json\n"
+" ln -s ${swift2nix.env.checkouts} .build/checkouts\n"
+"\n"
+" # Run the tests\n"
+" swift test\n"
+" touch $out\n"
+" '';\n"
+"}\n"
+msgstr ""
+
+msgid ""
+"ln -s ${node2nix-package.shell.nodeDependencies}/lib/node_modules ./node_modules\n"
+"npm test\n"
+msgstr ""
+
+msgid ""
+"nix-build -A swift2nix.release\n"
+"nix-build -A swift2nix.test\n"
+msgstr ""
diff --git a/locale/eo/LC_MESSAGES/_articles/2020-10-19-feature-flags-differences-between-backend-frontend-and-mobile.po b/locale/eo/LC_MESSAGES/_articles/2020-10-19-feature-flags-differences-between-backend-frontend-and-mobile.po
index ff9e23e..7f9cb36 100644
--- a/locale/eo/LC_MESSAGES/_articles/2020-10-19-feature-flags-differences-between-backend-frontend-and-mobile.po
+++ b/locale/eo/LC_MESSAGES/_articles/2020-10-19-feature-flags-differences-between-backend-frontend-and-mobile.po
@@ -414,3 +414,21 @@ msgid ""
"feature flags is a good problem to have, not the opposite. Automate the "
"process of creating a feature flag to lower its cost."
msgstr ""
+
+msgid ""
+"function processTransaction() {\n"
+" validate();\n"
+" persist();\n"
+" // TODO: add call to notifyListeners()\n"
+"}\n"
+msgstr ""
+
+msgid ""
+"function processTransaction() {\n"
+" validate();\n"
+" persist();\n"
+" if (featureIsEnabled(\"activate-notify-listeners\")) {\n"
+" notifyListeners();\n"
+" }\n"
+"}\n"
+msgstr ""