refactor: switch the whole project to English
talk is going to be published. Code comments, CLI output, error messages,
daemon log lines, MCP descriptions and results, test names and assertions,
README, spec, skill, build scripts and flake are now English. Only the
spoken announcement texts stay bilingual: the wrap result and the test
sentence are German or English depending on the detected language.
Language fallback is now configurable: `lang = "en" | "de"` (env
TALK_LANG, default en) is used when detection cannot tell (numbers, single
words, ties) and for talk's own announcements. langdetect.Detect takes the
fallback as an argument instead of hard-coding German. `talk setup` asks for
it; `talk doctor` and `talk status` show it.
Vocabulary pinned across packages so the process-boundary tests observe
stable strings: chain log lines ("chain: tier X skipped (not available)",
"falling back to the next tier", "spoken via X"), queue lines ("discarded:
quiet hours ... active", "replaced by toast", "max_age"), CLI notes
("speaking directly", "daemon started at", "no daemon", "nothing to cancel"),
status block with aligned English labels, MCP messages, origin guard 403.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
4d30bd95ad
commit
85fa64cfe6
95 files changed
+4707
-4854
No files matched your search
@@ -1,13 +1,13 @@
|
||||
{
|
||||
# talk — Sprach-Ausgaben für Skripte und KI-Agenten.
|
||||
# talk: voice notifications for scripts and AI agents.
|
||||
#
|
||||
# Nutzung in einer NixOS-/Home-Manager-Konfiguration:
|
||||
# Usage in a NixOS / Home Manager configuration:
|
||||
# inputs.talk.url = "git+https://code.m3ta.dev/m3tam3re/talk";
|
||||
# environment.systemPackages = [ inputs.talk.packages.${system}.talk ];
|
||||
# oder als Overlay: nixpkgs.overlays = [ inputs.talk.overlays.default ];
|
||||
# or as an overlay: nixpkgs.overlays = [ inputs.talk.overlays.default ];
|
||||
#
|
||||
# Dieses Flake ersetzt langfristig m3ta-nixpkgs talk/crunch (bash + mpv).
|
||||
description = "talk — Voice-Notifications für Skripte und KI-Agenten (ein Binary, Daemon mit Queue)";
|
||||
# In the long run this flake replaces m3ta-nixpkgs talk/crunch (bash + mpv).
|
||||
description = "talk: voice notifications for scripts and AI agents (one binary, daemon with queue)";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
@@ -21,16 +21,16 @@
|
||||
inherit version;
|
||||
src = self;
|
||||
subPackages = [ "cmd/talk" ];
|
||||
# Nach Änderungen an go.mod/go.sum neu setzen: `nix build` nennt den
|
||||
# erwarteten Hash.
|
||||
# Update after changes to go.mod/go.sum: `nix build` prints the
|
||||
# expected hash.
|
||||
vendorHash = "sha256-CbF3juTA7V05hh1ElKKACddsCn4bIPeLZxsz2EZxs9I=";
|
||||
env.CGO_ENABLED = 0;
|
||||
ldflags = [ "-s" "-w" "-X" "main.version=${version}" "-X" "main.commit=${self.shortRev or "dirty"}" ];
|
||||
# Prozessgrenzen-Tests starten Daemons und binden Ports — nicht in der Sandbox.
|
||||
# The process-boundary tests start daemons and bind ports; not in the sandbox.
|
||||
doCheck = false;
|
||||
# Audio: oto spricht PulseAudio/PipeWire direkt (reines Go) und fällt auf
|
||||
# ALSA zurück, das es zur Laufzeit per dlopen lädt — auf NixOS nur
|
||||
# auffindbar, wenn wir es in den Pfad legen. OS-Stimme: espeak-ng.
|
||||
# Audio: oto talks to PulseAudio/PipeWire directly (pure Go) and falls
|
||||
# back to ALSA, which it loads at runtime via dlopen; on NixOS that is
|
||||
# only found if we put it on the path. OS voice: espeak-ng.
|
||||
nativeBuildInputs = pkgs.lib.optionals pkgs.stdenv.isLinux [ pkgs.makeWrapper ];
|
||||
postInstall = pkgs.lib.optionalString pkgs.stdenv.isLinux ''
|
||||
wrapProgram $out/bin/talk \
|
||||
@@ -38,7 +38,7 @@
|
||||
--prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.espeak-ng pkgs.libnotify ]}
|
||||
'';
|
||||
meta = with pkgs.lib; {
|
||||
description = "Voice-Notifications für Skripte und KI-Agenten";
|
||||
description = "Voice notifications for scripts and AI agents";
|
||||
homepage = "https://code.m3ta.dev/m3tam3re/talk";
|
||||
license = licenses.mit;
|
||||
mainProgram = "talk";
|
||||
|
||||
Reference in new issue
Block a user