Fixed volume and panning for ninjam override.

This commit is contained in:
Storm Dragon committed 2026-10-28 03:47:57 -04:00
1 parent b45f800489
commit d3bcbbeacf
11 files changed
+412 -170

No files matched your search

+4 -2
View File
@@ -42,8 +42,10 @@ layouts may prevent recognition; Default is always available.
**Ninjam** targets the `cninjam` curses client. It announces selected controls
with master, metronome, or channel context; mute, transmit, and receive controls
are spoken as states. Volume and pan edits are announced without the continuously
changing peak meters and interval bar. Navigating the application's controls
are spoken as states. While adjusting a volume/pan control, Left/Right announces
only the pan percentage and direction, or center; Up/Down announces only the
volume, with minus and plus spoken explicitly. Peak meters and the interval bar
remain quiet. Navigating the application's controls
after manual review resumes tracking; passive updates leave review in place.
Incoming chat is announced independently of control changes. The following
shortcuts temporarily replace numbered region reads:
+49 -8
View File
@@ -22,6 +22,7 @@ import (
type Adapter struct {
previous screen.Snapshot
focusID, focusText, instruction, status string
volumePan string
chat []string
latest string
regions []applicationoverrides.Region
@@ -38,6 +39,7 @@ func (a *Adapter) Reset() {
a.previous = screen.Snapshot{}
a.focusID, a.focusText, a.instruction, a.status = "", "", "", ""
a.chat, a.regions, a.historyNavigation = nil, nil, false
a.volumePan = ""
}
func (a *Adapter) Close() { a.Reset(); a.latest = "" }
@@ -98,7 +100,7 @@ func (a *Adapter) Observe(next screen.Snapshot) applicationoverrides.Frame {
stable := a.previous.Active && a.previous.Terminal == next.Terminal && a.previous.Generation == next.Generation && a.previous.Rows == next.Rows && a.previous.Cols == next.Cols
chatHeight := max(next.Rows/4, 4)
chatTop := next.Rows - 2 - chatHeight
focusID, focusText := selected_control(next, chatTop)
focusID, focusText, volumePan := selected_control(next, chatTop)
if next.Y == next.Rows-3 {
focusID, focusText = "chat", i18n.T("Chat message")
frame.Input = &screen.Region{Left: 0, Top: next.Y, Right: next.Cols - 1, Bottom: next.Y}
@@ -114,7 +116,19 @@ func (a *Adapter) Observe(next screen.Snapshot) applicationoverrides.Frame {
}
frame.FocusChanged = stable && focusID != "" && a.focusID != "" && focusID != a.focusID
if focusText != "" && (!stable || focusText != a.focusText || focusID != a.focusID) {
frame.Focus = []presentation.Message{{Text: focusText}}
spoken := focusText
if stable && focusID == a.focusID && volumePan != "" && a.volumePan != "" {
before, after := strings.Fields(a.volumePan), strings.Fields(volumePan)
var changed []string
if before[0] != after[0] {
changed = append(changed, spoken_volume(after[0]))
}
if before[1] != after[1] {
changed = append(changed, spoken_pan(after[1]))
}
spoken = strings.Join(changed, " ")
}
frame.Focus = []presentation.Message{{Text: spoken}}
}
if instruction != "" && (!stable || instruction != a.instruction) {
frame.Updates = append(frame.Updates, presentation.Message{Text: instruction})
@@ -146,6 +160,7 @@ func (a *Adapter) Observe(next screen.Snapshot) applicationoverrides.Frame {
frame.Regions = slices.Clone(a.regions)
chatChanged := !slices.Equal(a.chat, chat)
a.previous, a.chat = next, chat
a.volumePan = volumePan
a.focusID, a.focusText, a.instruction, a.status = focusID, focusText, instruction, status
a.historyNavigation = historyNavigation && !chatChanged
return frame
@@ -179,9 +194,9 @@ func fields(line []rune) []field {
return result
}
func selected_control(snapshot screen.Snapshot, chatTop int) (string, string) {
func selected_control(snapshot screen.Snapshot, chatTop int) (string, string, string) {
if len(snapshot.Attributes) != len(snapshot.Cells) {
return "", ""
return "", "", ""
}
remote, user := false, ""
for row := 1; row < snapshot.Rows; row++ {
@@ -232,6 +247,7 @@ func selected_control(snapshot screen.Snapshot, chatTop int) (string, string) {
context = i18n.Format("Local channel {0}", controls[0].value)
}
value := control.value
volumePan := ""
switch control.label {
case "mute":
value = i18n.T("unmuted")
@@ -249,8 +265,9 @@ func selected_control(snapshot screen.Snapshot, chatTop int) (string, string) {
value = i18n.T("receiving")
}
default:
if strings.Contains(value, "dB") {
value = i18n.Format("Volume and pan {0}", value)
if parts := strings.Fields(value); len(parts) == 2 && strings.HasSuffix(parts[0], "dB") {
volumePan = value
value = i18n.Format("Volume and pan {0}", spoken_volume(parts[0])+" "+spoken_pan(parts[1]))
}
if len(controls) >= 5 && index == 0 {
value = i18n.Format("Channel name {0}", value)
@@ -271,10 +288,34 @@ func selected_control(snapshot screen.Snapshot, chatTop int) (string, string) {
value = i18n.T("Quit Ninjam")
}
}
return fmt.Sprintf("%d:%d:%s", row, index, context), strings.TrimSpace(context + " " + value)
return fmt.Sprintf("%d:%d:%s", row, index, context), strings.TrimSpace(context + " " + value), volumePan
}
}
return "", ""
return "", "", ""
}
// Keep signs and pan directions audible regardless of the punctuation profile.
func spoken_volume(value string) string {
if strings.HasPrefix(value, "-") {
return i18n.Format("minus {0}", value[1:])
}
if strings.HasPrefix(value, "+") {
return i18n.Format("plus {0}", value[1:])
}
return value
}
func spoken_pan(value string) string {
if value == "center" {
return i18n.T("center")
}
if amount, ok := strings.CutSuffix(value, "%L"); ok {
return i18n.Format("{0} percent left", amount)
}
if amount, ok := strings.CutSuffix(value, "%R"); ok {
return i18n.Format("{0} percent right", amount)
}
return value
}
func chat_lines(snapshot screen.Snapshot, first, last int) []string {
@@ -5,6 +5,7 @@ package ninjam_test
import (
"slices"
"strconv"
"strings"
"testing"
@@ -93,7 +94,7 @@ func TestFocusChatMetersAndValueReflow(t *testing.T) {
t.Fatal(got)
}
got = update(snapshot(1, " ", "-0.5dB center", "<Username> first", "<Username> second"))
if !slices.Equal(got, []string{"Master Volume and pan -0.5dB center"}) {
if !slices.Equal(got, []string{"minus 0.5dB"}) {
t.Fatal("reflow", got)
}
s := snapshot(1, " ", "-0.5dB center", "<Username> first", "<Username> second")
@@ -234,3 +235,70 @@ func TestWrappedChatRecallAndChangedGeometry(t *testing.T) {
t.Fatal("resized interval region", result)
}
}
func TestVolumeAndPanAnnounceOnlyChangedComponent(t *testing.T) {
for _, selected := range []int{1, 3, 8, 12} {
t.Run(strconv.Itoa(selected), func(t *testing.T) {
a, r := &ninjam.Adapter{}, reader.New()
makeSnapshot := func(value string, chat ...string) screen.Snapshot {
s := snapshot(selected, " ", "0.0dB center", chat...)
// Repaint the selected bracket with the same style, including
// changes in width at center and across signed dB values.
for row := range s.Rows {
for col, attribute := range s.Attributes[row*s.Cols : (row+1)*s.Cols] {
if attribute.Background != screen.ColorIndexed|7 {
continue
}
line := string(s.Line(row))
start := col
end := start + strings.Index(line[start:], "]")
line = line[:start] + value + line[end:]
for i := range s.Line(row) {
s.Line(row)[i] = ' '
s.Attributes[row*s.Cols+i] = screen.Attribute{Foreground: screen.ColorIndexed | 7, Background: screen.ColorIndexed}
}
copy(s.Line(row), []rune(line))
for i := start; i < start+len(value); i++ {
s.Attributes[row*s.Cols+i] = attribute
}
return s
}
}
t.Fatal("missing selected field")
return s
}
update := func(value string, chat ...string) []string {
s := makeSnapshot(value, chat...)
return texts(r.Update_application(s, a.Observe(s)))
}
update("0.0dB center", "<Username> old")
for _, trial := range []struct{ value, want string }{
{"0.0dB 1%L", "1 percent left"},
{"0.0dB 2%L", "2 percent left"},
{"0.0dB center", "center"},
{"0.0dB 1%R", "1 percent right"},
{"-0.5dB 1%R", "minus 0.5dB"},
{"0.0dB 1%R", "0.0dB"},
{"+0.5dB 1%R", "plus 0.5dB"},
{"+1.0dB 2%R", "plus 1.0dB 2 percent right"},
} {
if got := update(trial.value, "<Username> old"); !slices.Equal(got, []string{trial.want}) {
t.Fatalf("%s: %v", trial.value, got)
}
}
if got := update("+1.0dB 2%R", "<Username> old"); len(got) != 0 {
t.Fatal("unchanged value repeated", got)
}
if got := update("+1.0dB 3%R", "<Username> old", "<Username> new"); !slices.Equal(got, []string{"3 percent right", "<Username> new"}) {
t.Fatal("chat alongside pan", got)
}
if result, _ := a.Command(command.ReadLiveRegion2); !strings.Contains(result.Text, "Volume and pan plus 1.0dB 3 percent right") {
t.Fatal("full control recall lost", result)
}
r.Command(command.CurrentLine)
if got := update("+1.0dB 4%R", "<Username> new", "<Username> review"); !slices.Equal(got, []string{"<Username> review"}) {
t.Fatal("pan disturbed detached review", got)
}
})
}
}
+46 -26
View File
@@ -176,7 +176,7 @@ msgstr "Katze"
msgid "Chains"
msgstr "Ketten"
#: internal/applicationoverrides/ninjam/ninjam.go:256
#: internal/applicationoverrides/ninjam/ninjam.go:273
msgid "Channel name {0}"
msgstr "Kanalname {0}"
@@ -184,7 +184,7 @@ msgstr "Kanalname {0}"
msgid "Character echo"
msgstr "Zeichenansage"
#: internal/applicationoverrides/ninjam/ninjam.go:103
#: internal/applicationoverrides/ninjam/ninjam.go:105
msgid "Chat message"
msgstr "Chatnachricht"
@@ -277,7 +277,7 @@ msgstr "Sarg"
msgid "Column number for cursor"
msgstr "Spaltennummer des Cursors"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Connection, tempo and interval"
msgstr "Verbindung, Tempo und Intervall"
@@ -346,7 +346,7 @@ msgstr "Standard"
msgid "Default settings restored"
msgstr "Standardeinstellungen wiederhergestellt"
#: internal/applicationoverrides/ninjam/ninjam.go:262
#: internal/applicationoverrides/ninjam/ninjam.go:279
msgid "Delete channel"
msgstr "Kanal löschen"
@@ -569,11 +569,11 @@ msgstr "Einrückung"
msgid "India"
msgstr "Indien"
#: internal/applicationoverrides/ninjam/ninjam.go:259
#: internal/applicationoverrides/ninjam/ninjam.go:276
msgid "Input {0}"
msgstr "Eingang {0}"
#: internal/applicationoverrides/ninjam/ninjam.go:141
#: internal/applicationoverrides/ninjam/ninjam.go:155
msgid "Interval position {0} of {1}"
msgstr "Intervallposition {0} von {1}"
@@ -605,7 +605,7 @@ msgstr "Tastatur"
msgid "Last clipboard "
msgstr "Letzte Zwischenablage "
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Latest chat message"
msgstr "Letzte Chatnachricht"
@@ -649,7 +649,7 @@ msgstr "Live-Bereich {0}: {1}"
msgid "Live regions cleared"
msgstr "Live-Bereiche gelöscht"
#: internal/applicationoverrides/ninjam/ninjam.go:232
#: internal/applicationoverrides/ninjam/ninjam.go:247
msgid "Local channel {0}"
msgstr "Lokaler Kanal {0}"
@@ -657,11 +657,11 @@ msgstr "Lokaler Kanal {0}"
msgid "Mage"
msgstr "Magier"
#: internal/applicationoverrides/ninjam/ninjam.go:222
#: internal/applicationoverrides/ninjam/ninjam.go:237
msgid "Master"
msgstr "Hauptausgang"
#: internal/applicationoverrides/ninjam/ninjam.go:224
#: internal/applicationoverrides/ninjam/ninjam.go:239
msgid "Metronome"
msgstr "Metronom"
@@ -730,7 +730,7 @@ msgstr "Niederlande"
msgid "NetworkManager"
msgstr "NetworkManager"
#: internal/applicationoverrides/ninjam/ninjam.go:265
#: internal/applicationoverrides/ninjam/ninjam.go:282
msgid "New channel"
msgstr "Neuer Kanal"
@@ -738,11 +738,11 @@ msgstr "Neuer Kanal"
msgid "Ninjam"
msgstr "Ninjam"
#: internal/applicationoverrides/ninjam/ninjam.go:79
#: internal/applicationoverrides/ninjam/ninjam.go:81
msgid "Ninjam information unavailable"
msgstr "Ninjam-Informationen nicht verfügbar"
#: internal/applicationoverrides/ninjam/ninjam.go:63
#: internal/applicationoverrides/ninjam/ninjam.go:65
msgid ""
"Ninjam regions: 1 latest chat message; 2 selected channel or control; 3 "
"connection, tempo and interval"
@@ -750,7 +750,7 @@ msgstr ""
"Ninjam-Bereiche: 1 letzte Chatnachricht; 2 ausgewählter Kanal oder "
"Bedienelement; 3 Verbindung, Tempo und Intervall"
#: internal/applicationoverrides/ninjam/ninjam.go:77
#: internal/applicationoverrides/ninjam/ninjam.go:79
msgid "No chat message received"
msgstr "Keine Chatnachricht empfangen"
@@ -762,7 +762,7 @@ msgstr "Keine Treffer"
msgid "No reading regions set"
msgstr "Keine Lesebereiche festgelegt"
#: internal/applicationoverrides/ninjam/ninjam.go:268
#: internal/applicationoverrides/ninjam/ninjam.go:285
msgid "No remote users"
msgstr "Keine entfernten Benutzer"
@@ -873,7 +873,7 @@ msgstr "Satzzeichenprofil"
msgid "Quick menu not available"
msgstr "Schnellmenü nicht verfügbar"
#: internal/applicationoverrides/ninjam/ninjam.go:271
#: internal/applicationoverrides/ninjam/ninjam.go:288
msgid "Quit Ninjam"
msgstr "Ninjam beenden"
@@ -957,7 +957,7 @@ msgstr "Liest die Attribute an der aktuellen Cursorposition"
msgid "Reads from the top of the screen to the cursor position"
msgstr "Liest vom oberen Bildschirmrand bis zur Cursorposition"
#: internal/applicationoverrides/ninjam/ninjam.go:229
#: internal/applicationoverrides/ninjam/ninjam.go:244
msgid "Remote {0}, channel {1}"
msgstr "Entfernt {0}, Kanal {1}"
@@ -969,7 +969,7 @@ msgstr "Marken entfernen"
msgid "Removes marks from selected text"
msgstr "Entfernt die Markierungen des ausgewählten Textes"
#: internal/applicationoverrides/ninjam/ninjam.go:111
#: internal/applicationoverrides/ninjam/ninjam.go:113
msgid "Rename channel"
msgstr "Kanal umbenennen"
@@ -1061,7 +1061,7 @@ msgstr "Temporäre Anwendungseinstellungen auswählen"
msgid "Select sound theme"
msgstr "Klangthema auswählen"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Selected channel or control"
msgstr "Ausgewählter Kanal oder Bedienelement"
@@ -1316,7 +1316,7 @@ msgstr ""
msgid "Volume"
msgstr "Lautstärke"
#: internal/applicationoverrides/ninjam/ninjam.go:253
#: internal/applicationoverrides/ninjam/ninjam.go:270
msgid "Volume and pan {0}"
msgstr "Lautstärke und Panorama {0}"
@@ -1491,6 +1491,10 @@ msgstr "groß"
msgid "carrot"
msgstr "Zirkumflex"
#: internal/applicationoverrides/ninjam/ninjam.go:310
msgid "center"
msgstr "Mitte"
#: internal/presentation/text.go:68
msgid "character {0}"
msgstr "Zeichen {0}"
@@ -1883,6 +1887,10 @@ msgstr "Lippen versiegelt"
msgid "magenta"
msgstr "magenta"
#: internal/applicationoverrides/ninjam/ninjam.go:300
msgid "minus {0}"
msgstr "minus {0}"
#: internal/app/spellcheck.go:22 internal/app/spellcheck_menu.go
msgid "misspelled"
msgstr "Falsch geschrieben"
@@ -1915,7 +1923,7 @@ msgstr "bewegt den Lesecursor zum vorherigen Zeichen"
msgid "moves review to the previous line "
msgstr "bewegt den Lesecursor zur vorherigen Zeile "
#: internal/applicationoverrides/ninjam/ninjam.go:239
#: internal/applicationoverrides/ninjam/ninjam.go:255
msgid "muted"
msgstr "stummgeschaltet"
@@ -1946,11 +1954,11 @@ msgstr "keine Textkonsole"
msgid "none"
msgstr "keine"
#: internal/applicationoverrides/ninjam/ninjam.go:247
#: internal/applicationoverrides/ninjam/ninjam.go:263
msgid "not receiving"
msgstr "Empfang aus"
#: internal/applicationoverrides/ninjam/ninjam.go:242
#: internal/applicationoverrides/ninjam/ninjam.go:258
msgid "not transmitting"
msgstr "Übertragung aus"
@@ -1984,6 +1992,10 @@ msgstr "Bitte zuerst Start- und Endmarke setzen"
msgid "plus"
msgstr "Plus"
#: internal/applicationoverrides/ninjam/ninjam.go:303
msgid "plus {0}"
msgstr "plus {0}"
#: internal/command/descriptions.go:23
msgid "presents the current character."
msgstr "Gibt das aktuelle Zeichen aus."
@@ -2030,7 +2042,7 @@ msgstr "Liest vom Cursor bis zum unteren Bildschirmrand"
msgid "reads the contents of the current screen"
msgstr "Liest den Inhalt des aktuellen Bildschirms vor"
#: internal/applicationoverrides/ninjam/ninjam.go:249
#: internal/applicationoverrides/ninjam/ninjam.go:265
msgid "receiving"
msgstr "Empfang an"
@@ -2232,7 +2244,7 @@ msgstr "Schaltet den Lernmodus um"
msgid "tongue out"
msgstr "Zunge heraus"
#: internal/applicationoverrides/ninjam/ninjam.go:244
#: internal/applicationoverrides/ninjam/ninjam.go:260
msgid "transmitting"
msgstr "Übertragung an"
@@ -2253,7 +2265,7 @@ msgstr "deaktiviert"
msgid "underline"
msgstr "unterstrichen"
#: internal/applicationoverrides/ninjam/ninjam.go:237
#: internal/applicationoverrides/ninjam/ninjam.go:253
msgid "unmuted"
msgstr "nicht stummgeschaltet"
@@ -2297,6 +2309,14 @@ msgstr "{0} Raster. {1}"
msgid "{0} is already in dictionary"
msgstr "{0} ist bereits im Wörterbuch"
#: internal/applicationoverrides/ninjam/ninjam.go:313
msgid "{0} percent left"
msgstr "{0} Prozent links"
#: internal/applicationoverrides/ninjam/ninjam.go:316
msgid "{0} percent right"
msgstr "{0} Prozent rechts"
#: internal/app/spellcheck_menu.go
msgid "{0} removed"
msgstr "{0} entfernt"
+46 -26
View File
@@ -176,7 +176,7 @@ msgstr "Gato"
msgid "Chains"
msgstr "Cadenas"
#: internal/applicationoverrides/ninjam/ninjam.go:256
#: internal/applicationoverrides/ninjam/ninjam.go:273
msgid "Channel name {0}"
msgstr "Nombre del canal {0}"
@@ -184,7 +184,7 @@ msgstr "Nombre del canal {0}"
msgid "Character echo"
msgstr "Eco de caracteres"
#: internal/applicationoverrides/ninjam/ninjam.go:103
#: internal/applicationoverrides/ninjam/ninjam.go:105
msgid "Chat message"
msgstr "Mensaje de chat"
@@ -277,7 +277,7 @@ msgstr "Ataúd"
msgid "Column number for cursor"
msgstr "Número de columna del cursor"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Connection, tempo and interval"
msgstr "Conexión, tempo e intervalo"
@@ -346,7 +346,7 @@ msgstr "Predeterminado"
msgid "Default settings restored"
msgstr "Configuración predeterminada restaurada"
#: internal/applicationoverrides/ninjam/ninjam.go:262
#: internal/applicationoverrides/ninjam/ninjam.go:279
msgid "Delete channel"
msgstr "Eliminar canal"
@@ -570,11 +570,11 @@ msgstr "Sangría"
msgid "India"
msgstr "India"
#: internal/applicationoverrides/ninjam/ninjam.go:259
#: internal/applicationoverrides/ninjam/ninjam.go:276
msgid "Input {0}"
msgstr "Entrada {0}"
#: internal/applicationoverrides/ninjam/ninjam.go:141
#: internal/applicationoverrides/ninjam/ninjam.go:155
msgid "Interval position {0} of {1}"
msgstr "Posición del intervalo {0} de {1}"
@@ -606,7 +606,7 @@ msgstr "Teclado"
msgid "Last clipboard "
msgstr "Último portapapeles "
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Latest chat message"
msgstr "Último mensaje de chat"
@@ -650,7 +650,7 @@ msgstr "Región dinámica {0}: {1}"
msgid "Live regions cleared"
msgstr "Regiones dinámicas borradas"
#: internal/applicationoverrides/ninjam/ninjam.go:232
#: internal/applicationoverrides/ninjam/ninjam.go:247
msgid "Local channel {0}"
msgstr "Canal local {0}"
@@ -658,11 +658,11 @@ msgstr "Canal local {0}"
msgid "Mage"
msgstr "Mago"
#: internal/applicationoverrides/ninjam/ninjam.go:222
#: internal/applicationoverrides/ninjam/ninjam.go:237
msgid "Master"
msgstr "Maestro"
#: internal/applicationoverrides/ninjam/ninjam.go:224
#: internal/applicationoverrides/ninjam/ninjam.go:239
msgid "Metronome"
msgstr "Metrónomo"
@@ -738,7 +738,7 @@ msgstr "Países Bajos"
msgid "NetworkManager"
msgstr "NetworkManager"
#: internal/applicationoverrides/ninjam/ninjam.go:265
#: internal/applicationoverrides/ninjam/ninjam.go:282
msgid "New channel"
msgstr "Nuevo canal"
@@ -746,11 +746,11 @@ msgstr "Nuevo canal"
msgid "Ninjam"
msgstr "Ninjam"
#: internal/applicationoverrides/ninjam/ninjam.go:79
#: internal/applicationoverrides/ninjam/ninjam.go:81
msgid "Ninjam information unavailable"
msgstr "Información de Ninjam no disponible"
#: internal/applicationoverrides/ninjam/ninjam.go:63
#: internal/applicationoverrides/ninjam/ninjam.go:65
msgid ""
"Ninjam regions: 1 latest chat message; 2 selected channel or control; 3 "
"connection, tempo and interval"
@@ -758,7 +758,7 @@ msgstr ""
"Regiones de Ninjam: 1 último mensaje de chat; 2 canal o control "
"seleccionado; 3 conexión, tempo e intervalo"
#: internal/applicationoverrides/ninjam/ninjam.go:77
#: internal/applicationoverrides/ninjam/ninjam.go:79
msgid "No chat message received"
msgstr "No se ha recibido ningún mensaje de chat"
@@ -770,7 +770,7 @@ msgstr "Sin coincidencias"
msgid "No reading regions set"
msgstr "No hay regiones de lectura definidas"
#: internal/applicationoverrides/ninjam/ninjam.go:268
#: internal/applicationoverrides/ninjam/ninjam.go:285
msgid "No remote users"
msgstr "No hay usuarios remotos"
@@ -880,7 +880,7 @@ msgstr "Perfil de puntuación"
msgid "Quick menu not available"
msgstr "Menú rápido no disponible"
#: internal/applicationoverrides/ninjam/ninjam.go:271
#: internal/applicationoverrides/ninjam/ninjam.go:288
msgid "Quit Ninjam"
msgstr "Salir de Ninjam"
@@ -964,7 +964,7 @@ msgstr "Lee los atributos de la posición actual del cursor"
msgid "Reads from the top of the screen to the cursor position"
msgstr "Lee desde el inicio de la pantalla hasta la posición del cursor."
#: internal/applicationoverrides/ninjam/ninjam.go:229
#: internal/applicationoverrides/ninjam/ninjam.go:244
msgid "Remote {0}, channel {1}"
msgstr "Remoto {0}, canal {1}"
@@ -976,7 +976,7 @@ msgstr "Marcas eliminadas"
msgid "Removes marks from selected text"
msgstr "Elimina las marcas del texto seleccionado"
#: internal/applicationoverrides/ninjam/ninjam.go:111
#: internal/applicationoverrides/ninjam/ninjam.go:113
msgid "Rename channel"
msgstr "Cambiar nombre del canal"
@@ -1068,7 +1068,7 @@ msgstr "Seleccionar ajustes temporales para una aplicación"
msgid "Select sound theme"
msgstr "Seleccionar tema de sonido"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Selected channel or control"
msgstr "Canal o control seleccionado"
@@ -1321,7 +1321,7 @@ msgstr "Prueba de voz: El veloz zorro marrón salta sobre el perro perezoso."
msgid "Volume"
msgstr "Volumen"
#: internal/applicationoverrides/ninjam/ninjam.go:253
#: internal/applicationoverrides/ninjam/ninjam.go:270
msgid "Volume and pan {0}"
msgstr "Volumen y panorámica {0}"
@@ -1496,6 +1496,10 @@ msgstr "mayúscula"
msgid "carrot"
msgstr "acento circunflejo"
#: internal/applicationoverrides/ninjam/ninjam.go:310
msgid "center"
msgstr "centro"
#: internal/presentation/text.go:68
msgid "character {0}"
msgstr "carácter {0}"
@@ -1890,6 +1894,10 @@ msgstr "labios sellados"
msgid "magenta"
msgstr "magenta"
#: internal/applicationoverrides/ninjam/ninjam.go:300
msgid "minus {0}"
msgstr "menos {0}"
#: internal/app/spellcheck.go:22 internal/app/spellcheck_menu.go
msgid "misspelled"
msgstr "mal escrito"
@@ -1922,7 +1930,7 @@ msgstr "mueve el cursor de revisión al carácter anterior"
msgid "moves review to the previous line "
msgstr "mueve el cursor de revisión a la línea anterior "
#: internal/applicationoverrides/ninjam/ninjam.go:239
#: internal/applicationoverrides/ninjam/ninjam.go:255
msgid "muted"
msgstr "silenciado"
@@ -1953,11 +1961,11 @@ msgstr "sin consola de texto"
msgid "none"
msgstr "ninguno"
#: internal/applicationoverrides/ninjam/ninjam.go:247
#: internal/applicationoverrides/ninjam/ninjam.go:263
msgid "not receiving"
msgstr "sin recibir"
#: internal/applicationoverrides/ninjam/ninjam.go:242
#: internal/applicationoverrides/ninjam/ninjam.go:258
msgid "not transmitting"
msgstr "sin transmitir"
@@ -1992,6 +2000,10 @@ msgstr "Establece una marca de principio y otra para el final de la selección."
msgid "plus"
msgstr "más"
#: internal/applicationoverrides/ninjam/ninjam.go:303
msgid "plus {0}"
msgstr "más {0}"
#: internal/command/descriptions.go:23
msgid "presents the current character."
msgstr "Lee el carácter actual"
@@ -2038,7 +2050,7 @@ msgstr "Lee desde el cursor hasta el final de la pantalla"
msgid "reads the contents of the current screen"
msgstr "Lee el contenido de la pantalla actual"
#: internal/applicationoverrides/ninjam/ninjam.go:249
#: internal/applicationoverrides/ninjam/ninjam.go:265
msgid "receiving"
msgstr "recibiendo"
@@ -2238,7 +2250,7 @@ msgstr "alterna el modo de aprendizaje"
msgid "tongue out"
msgstr "lengua fuera"
#: internal/applicationoverrides/ninjam/ninjam.go:244
#: internal/applicationoverrides/ninjam/ninjam.go:260
msgid "transmitting"
msgstr "transmitiendo"
@@ -2259,7 +2271,7 @@ msgstr "no marcado"
msgid "underline"
msgstr "subrayado"
#: internal/applicationoverrides/ninjam/ninjam.go:237
#: internal/applicationoverrides/ninjam/ninjam.go:253
msgid "unmuted"
msgstr "no silenciado"
@@ -2303,6 +2315,14 @@ msgstr "{0} cuadrícula. {1}"
msgid "{0} is already in dictionary"
msgstr "{0} ya está en el diccionario"
#: internal/applicationoverrides/ninjam/ninjam.go:313
msgid "{0} percent left"
msgstr "{0} por ciento a la izquierda"
#: internal/applicationoverrides/ninjam/ninjam.go:316
msgid "{0} percent right"
msgstr "{0} por ciento a la derecha"
#: internal/app/spellcheck_menu.go
msgid "{0} removed"
msgstr "se ha eliminado {0}"
+46 -26
View File
@@ -165,7 +165,7 @@ msgstr ""
msgid "Chains"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:256
#: internal/applicationoverrides/ninjam/ninjam.go:273
msgid "Channel name {0}"
msgstr ""
@@ -173,7 +173,7 @@ msgstr ""
msgid "Character echo"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:103
#: internal/applicationoverrides/ninjam/ninjam.go:105
msgid "Chat message"
msgstr ""
@@ -265,7 +265,7 @@ msgstr ""
msgid "Column number for cursor"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Connection, tempo and interval"
msgstr ""
@@ -329,7 +329,7 @@ msgstr ""
msgid "Default settings restored"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:262
#: internal/applicationoverrides/ninjam/ninjam.go:279
msgid "Delete channel"
msgstr ""
@@ -541,11 +541,11 @@ msgstr ""
msgid "India"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:259
#: internal/applicationoverrides/ninjam/ninjam.go:276
msgid "Input {0}"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:141
#: internal/applicationoverrides/ninjam/ninjam.go:155
msgid "Interval position {0} of {1}"
msgstr ""
@@ -577,7 +577,7 @@ msgstr ""
msgid "Last clipboard "
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Latest chat message"
msgstr ""
@@ -621,7 +621,7 @@ msgstr ""
msgid "Live regions cleared"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:232
#: internal/applicationoverrides/ninjam/ninjam.go:247
msgid "Local channel {0}"
msgstr ""
@@ -629,11 +629,11 @@ msgstr ""
msgid "Mage"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:222
#: internal/applicationoverrides/ninjam/ninjam.go:237
msgid "Master"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:224
#: internal/applicationoverrides/ninjam/ninjam.go:239
msgid "Metronome"
msgstr ""
@@ -701,7 +701,7 @@ msgstr ""
msgid "NetworkManager"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:265
#: internal/applicationoverrides/ninjam/ninjam.go:282
msgid "New channel"
msgstr ""
@@ -709,15 +709,15 @@ msgstr ""
msgid "Ninjam"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:79
#: internal/applicationoverrides/ninjam/ninjam.go:81
msgid "Ninjam information unavailable"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:63
#: internal/applicationoverrides/ninjam/ninjam.go:65
msgid "Ninjam regions: 1 latest chat message; 2 selected channel or control; 3 connection, tempo and interval"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:77
#: internal/applicationoverrides/ninjam/ninjam.go:79
msgid "No chat message received"
msgstr ""
@@ -729,7 +729,7 @@ msgstr ""
msgid "No reading regions set"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:268
#: internal/applicationoverrides/ninjam/ninjam.go:285
msgid "No remote users"
msgstr ""
@@ -837,7 +837,7 @@ msgstr ""
msgid "Quick menu not available"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:271
#: internal/applicationoverrides/ninjam/ninjam.go:288
msgid "Quit Ninjam"
msgstr ""
@@ -921,7 +921,7 @@ msgstr ""
msgid "Reads from the top of the screen to the cursor position"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:229
#: internal/applicationoverrides/ninjam/ninjam.go:244
msgid "Remote {0}, channel {1}"
msgstr ""
@@ -933,7 +933,7 @@ msgstr ""
msgid "Removes marks from selected text"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:111
#: internal/applicationoverrides/ninjam/ninjam.go:113
msgid "Rename channel"
msgstr ""
@@ -1025,7 +1025,7 @@ msgstr ""
msgid "Select sound theme"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Selected channel or control"
msgstr ""
@@ -1273,7 +1273,7 @@ msgstr ""
msgid "Volume"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:253
#: internal/applicationoverrides/ninjam/ninjam.go:270
msgid "Volume and pan {0}"
msgstr ""
@@ -1433,6 +1433,10 @@ msgstr ""
msgid "carrot"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:310
msgid "center"
msgstr ""
#: internal/presentation/text.go:68
msgid "character {0}"
msgstr ""
@@ -1805,6 +1809,10 @@ msgstr ""
msgid "magenta"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:300
msgid "minus {0}"
msgstr ""
#: internal/app/spellcheck.go:22 internal/app/spellcheck_menu.go
msgid "misspelled"
msgstr ""
@@ -1837,7 +1845,7 @@ msgstr ""
msgid "moves review to the previous line "
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:239
#: internal/applicationoverrides/ninjam/ninjam.go:255
msgid "muted"
msgstr ""
@@ -1865,11 +1873,11 @@ msgstr ""
msgid "none"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:247
#: internal/applicationoverrides/ninjam/ninjam.go:263
msgid "not receiving"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:242
#: internal/applicationoverrides/ninjam/ninjam.go:258
msgid "not transmitting"
msgstr ""
@@ -1901,6 +1909,10 @@ msgstr ""
msgid "plus"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:303
msgid "plus {0}"
msgstr ""
#: internal/command/descriptions.go:23
msgid "presents the current character."
msgstr ""
@@ -1937,7 +1949,7 @@ msgstr ""
msgid "reads the contents of the current screen"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:249
#: internal/applicationoverrides/ninjam/ninjam.go:265
msgid "receiving"
msgstr ""
@@ -2129,7 +2141,7 @@ msgstr ""
msgid "tongue out"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:244
#: internal/applicationoverrides/ninjam/ninjam.go:260
msgid "transmitting"
msgstr ""
@@ -2149,7 +2161,7 @@ msgstr ""
msgid "underline"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:237
#: internal/applicationoverrides/ninjam/ninjam.go:253
msgid "unmuted"
msgstr ""
@@ -2193,6 +2205,14 @@ msgstr ""
msgid "{0} is already in dictionary"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:313
msgid "{0} percent left"
msgstr ""
#: internal/applicationoverrides/ninjam/ninjam.go:316
msgid "{0} percent right"
msgstr ""
#: internal/app/spellcheck_menu.go
msgid "{0} removed"
msgstr ""
+46 -26
View File
@@ -177,7 +177,7 @@ msgstr "Kot"
msgid "Chains"
msgstr "Łańcuchy"
#: internal/applicationoverrides/ninjam/ninjam.go:256
#: internal/applicationoverrides/ninjam/ninjam.go:273
msgid "Channel name {0}"
msgstr "Nazwa kanału {0}"
@@ -185,7 +185,7 @@ msgstr "Nazwa kanału {0}"
msgid "Character echo"
msgstr "Echo znaków"
#: internal/applicationoverrides/ninjam/ninjam.go:103
#: internal/applicationoverrides/ninjam/ninjam.go:105
msgid "Chat message"
msgstr "Wiadomość czatu"
@@ -278,7 +278,7 @@ msgstr "Trumna"
msgid "Column number for cursor"
msgstr "Numer kolumny kursora"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Connection, tempo and interval"
msgstr "Połączenie, tempo i interwał"
@@ -347,7 +347,7 @@ msgstr "Domyślne"
msgid "Default settings restored"
msgstr "Przywrócono ustawienia domyślne"
#: internal/applicationoverrides/ninjam/ninjam.go:262
#: internal/applicationoverrides/ninjam/ninjam.go:279
msgid "Delete channel"
msgstr "Usuń kanał"
@@ -570,11 +570,11 @@ msgstr "Wcięcia"
msgid "India"
msgstr "Indie"
#: internal/applicationoverrides/ninjam/ninjam.go:259
#: internal/applicationoverrides/ninjam/ninjam.go:276
msgid "Input {0}"
msgstr "Wejście {0}"
#: internal/applicationoverrides/ninjam/ninjam.go:141
#: internal/applicationoverrides/ninjam/ninjam.go:155
msgid "Interval position {0} of {1}"
msgstr "Pozycja interwału {0} z {1}"
@@ -606,7 +606,7 @@ msgstr "Klawiatura"
msgid "Last clipboard "
msgstr "Ostatni showek "
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Latest chat message"
msgstr "Ostatnia wiadomość czatu"
@@ -650,7 +650,7 @@ msgstr "Obszar dynamiczny {0}: {1}"
msgid "Live regions cleared"
msgstr "Wyczyszczono obszary dynamiczne"
#: internal/applicationoverrides/ninjam/ninjam.go:232
#: internal/applicationoverrides/ninjam/ninjam.go:247
msgid "Local channel {0}"
msgstr "Kanał lokalny {0}"
@@ -658,11 +658,11 @@ msgstr "Kanał lokalny {0}"
msgid "Mage"
msgstr "Mag"
#: internal/applicationoverrides/ninjam/ninjam.go:222
#: internal/applicationoverrides/ninjam/ninjam.go:237
msgid "Master"
msgstr "Główne wyjście"
#: internal/applicationoverrides/ninjam/ninjam.go:224
#: internal/applicationoverrides/ninjam/ninjam.go:239
msgid "Metronome"
msgstr "Metronom"
@@ -734,7 +734,7 @@ msgstr "Holandia"
msgid "NetworkManager"
msgstr "NetworkManager"
#: internal/applicationoverrides/ninjam/ninjam.go:265
#: internal/applicationoverrides/ninjam/ninjam.go:282
msgid "New channel"
msgstr "Nowy kanał"
@@ -742,11 +742,11 @@ msgstr "Nowy kanał"
msgid "Ninjam"
msgstr "Ninjam"
#: internal/applicationoverrides/ninjam/ninjam.go:79
#: internal/applicationoverrides/ninjam/ninjam.go:81
msgid "Ninjam information unavailable"
msgstr "Informacje o Ninjam są niedostępne"
#: internal/applicationoverrides/ninjam/ninjam.go:63
#: internal/applicationoverrides/ninjam/ninjam.go:65
msgid ""
"Ninjam regions: 1 latest chat message; 2 selected channel or control; 3 "
"connection, tempo and interval"
@@ -754,7 +754,7 @@ msgstr ""
"Regiony Ninjam: 1 ostatnia wiadomość czatu; 2 wybrany kanał lub element "
"sterujący; 3 połączenie, tempo i interwał"
#: internal/applicationoverrides/ninjam/ninjam.go:77
#: internal/applicationoverrides/ninjam/ninjam.go:79
msgid "No chat message received"
msgstr "Nie odebrano wiadomości czatu"
@@ -766,7 +766,7 @@ msgstr "Brak dopasowań"
msgid "No reading regions set"
msgstr "Nie ustawiono obszarów czytania"
#: internal/applicationoverrides/ninjam/ninjam.go:268
#: internal/applicationoverrides/ninjam/ninjam.go:285
msgid "No remote users"
msgstr "Brak użytkowników zdalnych"
@@ -875,7 +875,7 @@ msgstr "Profil interpunkcji"
msgid "Quick menu not available"
msgstr "Menu podręczne niedostępne"
#: internal/applicationoverrides/ninjam/ninjam.go:271
#: internal/applicationoverrides/ninjam/ninjam.go:288
msgid "Quit Ninjam"
msgstr "Zakończ Ninjam"
@@ -959,7 +959,7 @@ msgstr "Odczytuje atrybuty bieżącej pozycji kursora"
msgid "Reads from the top of the screen to the cursor position"
msgstr "Czyta od góry ekranu do pozycji kursora."
#: internal/applicationoverrides/ninjam/ninjam.go:229
#: internal/applicationoverrides/ninjam/ninjam.go:244
msgid "Remote {0}, channel {1}"
msgstr "Zdalny użytkownik {0}, kanał {1}"
@@ -971,7 +971,7 @@ msgstr "Usuń znaczniki"
msgid "Removes marks from selected text"
msgstr "Usuwa znaczniki z zaznaczonego tekstu"
#: internal/applicationoverrides/ninjam/ninjam.go:111
#: internal/applicationoverrides/ninjam/ninjam.go:113
msgid "Rename channel"
msgstr "Zmień nazwę kanału"
@@ -1063,7 +1063,7 @@ msgstr "Wybierz tymczasowe ustawienia aplikacji"
msgid "Select sound theme"
msgstr "Wybierz motyw dźwiękowy"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Selected channel or control"
msgstr "Wybrany kanał lub element sterujący"
@@ -1317,7 +1317,7 @@ msgstr "Test głosu: Szybki brązowy lis przeskakuje nad leniwym psem."
msgid "Volume"
msgstr "Głośność"
#: internal/applicationoverrides/ninjam/ninjam.go:253
#: internal/applicationoverrides/ninjam/ninjam.go:270
msgid "Volume and pan {0}"
msgstr "Głośność i panorama {0}"
@@ -1492,6 +1492,10 @@ msgstr "duża"
msgid "carrot"
msgstr "daszek"
#: internal/applicationoverrides/ninjam/ninjam.go:310
msgid "center"
msgstr "środek"
#: internal/presentation/text.go:68
msgid "character {0}"
msgstr "znak {0}"
@@ -1883,6 +1887,10 @@ msgstr "usta zamknięte"
msgid "magenta"
msgstr "magenta"
#: internal/applicationoverrides/ninjam/ninjam.go:300
msgid "minus {0}"
msgstr "minus {0}"
#: internal/app/spellcheck.go:22 internal/app/spellcheck_menu.go
msgid "misspelled"
msgstr "Błąd pisowni"
@@ -1915,7 +1923,7 @@ msgstr "przenosi kursor przeglądu do poprzedniego znaku"
msgid "moves review to the previous line "
msgstr "przenosi kursor przeglądu do poprzedniego wiersza "
#: internal/applicationoverrides/ninjam/ninjam.go:239
#: internal/applicationoverrides/ninjam/ninjam.go:255
msgid "muted"
msgstr "wyciszony"
@@ -1946,11 +1954,11 @@ msgstr "brak konsoli tekstowej"
msgid "none"
msgstr "brak"
#: internal/applicationoverrides/ninjam/ninjam.go:247
#: internal/applicationoverrides/ninjam/ninjam.go:263
msgid "not receiving"
msgstr "odbiór wyłączony"
#: internal/applicationoverrides/ninjam/ninjam.go:242
#: internal/applicationoverrides/ninjam/ninjam.go:258
msgid "not transmitting"
msgstr "nadawanie wyłączone"
@@ -1984,6 +1992,10 @@ msgstr "ustaw znacznik początku i końca."
msgid "plus"
msgstr "plus"
#: internal/applicationoverrides/ninjam/ninjam.go:303
msgid "plus {0}"
msgstr "plus {0}"
#: internal/command/descriptions.go:23
msgid "presents the current character."
msgstr "Odczytuje aktualny znak."
@@ -2030,7 +2042,7 @@ msgstr "Czyta od pozycji kursora do końca ekranu."
msgid "reads the contents of the current screen"
msgstr "Wypowiada treść aktualnego ekranu."
#: internal/applicationoverrides/ninjam/ninjam.go:249
#: internal/applicationoverrides/ninjam/ninjam.go:265
msgid "receiving"
msgstr "odbiór włączony"
@@ -2230,7 +2242,7 @@ msgstr "Przełącza tryb pomocy."
msgid "tongue out"
msgstr "wystawiony język"
#: internal/applicationoverrides/ninjam/ninjam.go:244
#: internal/applicationoverrides/ninjam/ninjam.go:260
msgid "transmitting"
msgstr "nadawanie włączone"
@@ -2251,7 +2263,7 @@ msgstr "niezaznaczone"
msgid "underline"
msgstr "podkreślenie"
#: internal/applicationoverrides/ninjam/ninjam.go:237
#: internal/applicationoverrides/ninjam/ninjam.go:253
msgid "unmuted"
msgstr "niewyciszony"
@@ -2295,6 +2307,14 @@ msgstr "{0} siatka. {1}"
msgid "{0} is already in dictionary"
msgstr "{0} jest już w słowniku"
#: internal/applicationoverrides/ninjam/ninjam.go:313
msgid "{0} percent left"
msgstr "{0} procent w lewo"
#: internal/applicationoverrides/ninjam/ninjam.go:316
msgid "{0} percent right"
msgstr "{0} procent w prawo"
#: internal/app/spellcheck_menu.go
msgid "{0} removed"
msgstr "{0} usunięte."
+46 -26
View File
@@ -175,7 +175,7 @@ msgstr "Gato"
msgid "Chains"
msgstr "Correntes"
#: internal/applicationoverrides/ninjam/ninjam.go:256
#: internal/applicationoverrides/ninjam/ninjam.go:273
msgid "Channel name {0}"
msgstr "Nome do canal {0}"
@@ -183,7 +183,7 @@ msgstr "Nome do canal {0}"
msgid "Character echo"
msgstr "Eco de caracteres"
#: internal/applicationoverrides/ninjam/ninjam.go:103
#: internal/applicationoverrides/ninjam/ninjam.go:105
msgid "Chat message"
msgstr "Mensagem do chat"
@@ -276,7 +276,7 @@ msgstr "Caixão"
msgid "Column number for cursor"
msgstr "Número da coluna do cursor"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Connection, tempo and interval"
msgstr "Conexão, andamento e intervalo"
@@ -345,7 +345,7 @@ msgstr "Padrão"
msgid "Default settings restored"
msgstr "Configurações padrão restauradas"
#: internal/applicationoverrides/ninjam/ninjam.go:262
#: internal/applicationoverrides/ninjam/ninjam.go:279
msgid "Delete channel"
msgstr "Excluir canal"
@@ -570,11 +570,11 @@ msgstr "Recuo"
msgid "India"
msgstr "Índia"
#: internal/applicationoverrides/ninjam/ninjam.go:259
#: internal/applicationoverrides/ninjam/ninjam.go:276
msgid "Input {0}"
msgstr "Entrada {0}"
#: internal/applicationoverrides/ninjam/ninjam.go:141
#: internal/applicationoverrides/ninjam/ninjam.go:155
msgid "Interval position {0} of {1}"
msgstr "Posição do intervalo {0} de {1}"
@@ -606,7 +606,7 @@ msgstr "Teclado"
msgid "Last clipboard "
msgstr "Última área de transferência "
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Latest chat message"
msgstr "Última mensagem do chat"
@@ -650,7 +650,7 @@ msgstr "Região dinâmica {0}: {1}"
msgid "Live regions cleared"
msgstr "Regiões dinâmicas limpas"
#: internal/applicationoverrides/ninjam/ninjam.go:232
#: internal/applicationoverrides/ninjam/ninjam.go:247
msgid "Local channel {0}"
msgstr "Canal local {0}"
@@ -658,11 +658,11 @@ msgstr "Canal local {0}"
msgid "Mage"
msgstr "Mago"
#: internal/applicationoverrides/ninjam/ninjam.go:222
#: internal/applicationoverrides/ninjam/ninjam.go:237
msgid "Master"
msgstr "Principal"
#: internal/applicationoverrides/ninjam/ninjam.go:224
#: internal/applicationoverrides/ninjam/ninjam.go:239
msgid "Metronome"
msgstr "Metrônomo"
@@ -736,7 +736,7 @@ msgstr "Países Baixos"
msgid "NetworkManager"
msgstr "NetworkManager"
#: internal/applicationoverrides/ninjam/ninjam.go:265
#: internal/applicationoverrides/ninjam/ninjam.go:282
msgid "New channel"
msgstr "Novo canal"
@@ -744,11 +744,11 @@ msgstr "Novo canal"
msgid "Ninjam"
msgstr "Ninjam"
#: internal/applicationoverrides/ninjam/ninjam.go:79
#: internal/applicationoverrides/ninjam/ninjam.go:81
msgid "Ninjam information unavailable"
msgstr "Informações do Ninjam indisponíveis"
#: internal/applicationoverrides/ninjam/ninjam.go:63
#: internal/applicationoverrides/ninjam/ninjam.go:65
msgid ""
"Ninjam regions: 1 latest chat message; 2 selected channel or control; 3 "
"connection, tempo and interval"
@@ -756,7 +756,7 @@ msgstr ""
"Regiões do Ninjam: 1 última mensagem do chat; 2 canal ou controle "
"selecionado; 3 conexão, andamento e intervalo"
#: internal/applicationoverrides/ninjam/ninjam.go:77
#: internal/applicationoverrides/ninjam/ninjam.go:79
msgid "No chat message received"
msgstr "Nenhuma mensagem de chat recebida"
@@ -768,7 +768,7 @@ msgstr "Nenhum resultado"
msgid "No reading regions set"
msgstr "Nenhuma região de leitura definida"
#: internal/applicationoverrides/ninjam/ninjam.go:268
#: internal/applicationoverrides/ninjam/ninjam.go:285
msgid "No remote users"
msgstr "Nenhum usuário remoto"
@@ -879,7 +879,7 @@ msgstr "Perfil de pontuação"
msgid "Quick menu not available"
msgstr "Menu rápido indisponível"
#: internal/applicationoverrides/ninjam/ninjam.go:271
#: internal/applicationoverrides/ninjam/ninjam.go:288
msgid "Quit Ninjam"
msgstr "Sair do Ninjam"
@@ -963,7 +963,7 @@ msgstr "Lê os atributos da posição atual do cursor"
msgid "Reads from the top of the screen to the cursor position"
msgstr "Lê da parte superior da tela até a posição do cursor"
#: internal/applicationoverrides/ninjam/ninjam.go:229
#: internal/applicationoverrides/ninjam/ninjam.go:244
msgid "Remote {0}, channel {1}"
msgstr "Remoto {0}, canal {1}"
@@ -975,7 +975,7 @@ msgstr "Remove marcas"
msgid "Removes marks from selected text"
msgstr "Remove as marcas do texto selecionado"
#: internal/applicationoverrides/ninjam/ninjam.go:111
#: internal/applicationoverrides/ninjam/ninjam.go:113
msgid "Rename channel"
msgstr "Renomear canal"
@@ -1067,7 +1067,7 @@ msgstr "Selecionar configurações temporárias de um aplicativo"
msgid "Select sound theme"
msgstr "Selecionar tema de som"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Selected channel or control"
msgstr "Canal ou controle selecionado"
@@ -1322,7 +1322,7 @@ msgstr ""
msgid "Volume"
msgstr "Volume"
#: internal/applicationoverrides/ninjam/ninjam.go:253
#: internal/applicationoverrides/ninjam/ninjam.go:270
msgid "Volume and pan {0}"
msgstr "Volume e panorama {0}"
@@ -1497,6 +1497,10 @@ msgstr "maiúscula"
msgid "carrot"
msgstr "acento circunflexo"
#: internal/applicationoverrides/ninjam/ninjam.go:310
msgid "center"
msgstr "centro"
#: internal/presentation/text.go:68
msgid "character {0}"
msgstr "caractere {0}"
@@ -1894,6 +1898,10 @@ msgstr "lábios selados"
msgid "magenta"
msgstr "magenta"
#: internal/applicationoverrides/ninjam/ninjam.go:300
msgid "minus {0}"
msgstr "menos {0}"
#: internal/app/spellcheck.go:22 internal/app/spellcheck_menu.go
msgid "misspelled"
msgstr "com erros ortográficos"
@@ -1926,7 +1934,7 @@ msgstr "move o cursor de revisão para o caractere anterior"
msgid "moves review to the previous line "
msgstr "move o cursor de revisão para a linha anterior "
#: internal/applicationoverrides/ninjam/ninjam.go:239
#: internal/applicationoverrides/ninjam/ninjam.go:255
msgid "muted"
msgstr "silenciado"
@@ -1957,11 +1965,11 @@ msgstr "nenhum console de texto"
msgid "none"
msgstr "nenhum"
#: internal/applicationoverrides/ninjam/ninjam.go:247
#: internal/applicationoverrides/ninjam/ninjam.go:263
msgid "not receiving"
msgstr "não recebendo"
#: internal/applicationoverrides/ninjam/ninjam.go:242
#: internal/applicationoverrides/ninjam/ninjam.go:258
msgid "not transmitting"
msgstr "não transmitindo"
@@ -1996,6 +2004,10 @@ msgstr "por favor, defina o início e o fim da seleção"
msgid "plus"
msgstr "mais"
#: internal/applicationoverrides/ninjam/ninjam.go:303
msgid "plus {0}"
msgstr "mais {0}"
#: internal/command/descriptions.go:23
msgid "presents the current character."
msgstr "apresenta o caracter atual."
@@ -2042,7 +2054,7 @@ msgstr "lê a partir do cursor até a parte inferior da tela"
msgid "reads the contents of the current screen"
msgstr "lê o conteúdo da tela atual"
#: internal/applicationoverrides/ninjam/ninjam.go:249
#: internal/applicationoverrides/ninjam/ninjam.go:265
msgid "receiving"
msgstr "recebendo"
@@ -2243,7 +2255,7 @@ msgstr "alterna o modo de aprendizado"
msgid "tongue out"
msgstr "língua de fora"
#: internal/applicationoverrides/ninjam/ninjam.go:244
#: internal/applicationoverrides/ninjam/ninjam.go:260
msgid "transmitting"
msgstr "transmitindo"
@@ -2264,7 +2276,7 @@ msgstr "desmarcado"
msgid "underline"
msgstr "sublinhado"
#: internal/applicationoverrides/ninjam/ninjam.go:237
#: internal/applicationoverrides/ninjam/ninjam.go:253
msgid "unmuted"
msgstr "não silenciado"
@@ -2308,6 +2320,14 @@ msgstr "{0} grade. {1}"
msgid "{0} is already in dictionary"
msgstr "{0} já está no dicionário"
#: internal/applicationoverrides/ninjam/ninjam.go:313
msgid "{0} percent left"
msgstr "{0} por cento à esquerda"
#: internal/applicationoverrides/ninjam/ninjam.go:316
msgid "{0} percent right"
msgstr "{0} por cento à direita"
#: internal/app/spellcheck_menu.go
msgid "{0} removed"
msgstr "{0} removido"
+46 -26
View File
@@ -174,7 +174,7 @@ msgstr "Кошка"
msgid "Chains"
msgstr "Цепи"
#: internal/applicationoverrides/ninjam/ninjam.go:256
#: internal/applicationoverrides/ninjam/ninjam.go:273
msgid "Channel name {0}"
msgstr "Название канала {0}"
@@ -182,7 +182,7 @@ msgstr "Название канала {0}"
msgid "Character echo"
msgstr "Эхо символов"
#: internal/applicationoverrides/ninjam/ninjam.go:103
#: internal/applicationoverrides/ninjam/ninjam.go:105
msgid "Chat message"
msgstr "Сообщение чата"
@@ -275,7 +275,7 @@ msgstr "Гроб"
msgid "Column number for cursor"
msgstr "Номер столбца для курсора."
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Connection, tempo and interval"
msgstr "Соединение, темп и интервал"
@@ -344,7 +344,7 @@ msgstr "По умолчанию"
msgid "Default settings restored"
msgstr "Настройки по умолчанию восстановлены"
#: internal/applicationoverrides/ninjam/ninjam.go:262
#: internal/applicationoverrides/ninjam/ninjam.go:279
msgid "Delete channel"
msgstr "Удалить канал"
@@ -566,11 +566,11 @@ msgstr "Отступы"
msgid "India"
msgstr "Индия"
#: internal/applicationoverrides/ninjam/ninjam.go:259
#: internal/applicationoverrides/ninjam/ninjam.go:276
msgid "Input {0}"
msgstr "Вход {0}"
#: internal/applicationoverrides/ninjam/ninjam.go:141
#: internal/applicationoverrides/ninjam/ninjam.go:155
msgid "Interval position {0} of {1}"
msgstr "Позиция интервала {0} из {1}"
@@ -602,7 +602,7 @@ msgstr "Клавиатура"
msgid "Last clipboard "
msgstr "Последний буфер обмена. "
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Latest chat message"
msgstr "Последнее сообщение чата"
@@ -646,7 +646,7 @@ msgstr "Динамическая область {0}: {1}"
msgid "Live regions cleared"
msgstr "Динамические области очищены"
#: internal/applicationoverrides/ninjam/ninjam.go:232
#: internal/applicationoverrides/ninjam/ninjam.go:247
msgid "Local channel {0}"
msgstr "Локальный канал {0}"
@@ -654,11 +654,11 @@ msgstr "Локальный канал {0}"
msgid "Mage"
msgstr "Маг"
#: internal/applicationoverrides/ninjam/ninjam.go:222
#: internal/applicationoverrides/ninjam/ninjam.go:237
msgid "Master"
msgstr "Основной выход"
#: internal/applicationoverrides/ninjam/ninjam.go:224
#: internal/applicationoverrides/ninjam/ninjam.go:239
msgid "Metronome"
msgstr "Метроном"
@@ -729,7 +729,7 @@ msgstr "Нидерланды"
msgid "NetworkManager"
msgstr "NetworkManager"
#: internal/applicationoverrides/ninjam/ninjam.go:265
#: internal/applicationoverrides/ninjam/ninjam.go:282
msgid "New channel"
msgstr "Новый канал"
@@ -737,11 +737,11 @@ msgstr "Новый канал"
msgid "Ninjam"
msgstr "Ninjam"
#: internal/applicationoverrides/ninjam/ninjam.go:79
#: internal/applicationoverrides/ninjam/ninjam.go:81
msgid "Ninjam information unavailable"
msgstr "Информация Ninjam недоступна"
#: internal/applicationoverrides/ninjam/ninjam.go:63
#: internal/applicationoverrides/ninjam/ninjam.go:65
msgid ""
"Ninjam regions: 1 latest chat message; 2 selected channel or control; 3 "
"connection, tempo and interval"
@@ -749,7 +749,7 @@ msgstr ""
"Области Ninjam: 1 последнее сообщение чата; 2 выбранный канал или элемент "
"управления; 3 соединение, темп и интервал"
#: internal/applicationoverrides/ninjam/ninjam.go:77
#: internal/applicationoverrides/ninjam/ninjam.go:79
msgid "No chat message received"
msgstr "Сообщения чата не получены"
@@ -761,7 +761,7 @@ msgstr "Совпадений нет"
msgid "No reading regions set"
msgstr "Области чтения не заданы"
#: internal/applicationoverrides/ninjam/ninjam.go:268
#: internal/applicationoverrides/ninjam/ninjam.go:285
msgid "No remote users"
msgstr "Нет удалённых пользователей"
@@ -871,7 +871,7 @@ msgstr "Профиль пунктуации"
msgid "Quick menu not available"
msgstr "Быстрое меню недоступно."
#: internal/applicationoverrides/ninjam/ninjam.go:271
#: internal/applicationoverrides/ninjam/ninjam.go:288
msgid "Quit Ninjam"
msgstr "Выйти из Ninjam"
@@ -955,7 +955,7 @@ msgstr "Читает атрибуты текущей позиции курсор
msgid "Reads from the top of the screen to the cursor position"
msgstr "Чтение сначала экрана до курсора."
#: internal/applicationoverrides/ninjam/ninjam.go:229
#: internal/applicationoverrides/ninjam/ninjam.go:244
msgid "Remote {0}, channel {1}"
msgstr "Удалённый пользователь {0}, канал {1}"
@@ -967,7 +967,7 @@ msgstr "Удалить метки."
msgid "Removes marks from selected text"
msgstr "Удалить метки из выбранного текста."
#: internal/applicationoverrides/ninjam/ninjam.go:111
#: internal/applicationoverrides/ninjam/ninjam.go:113
msgid "Rename channel"
msgstr "Переименовать канал"
@@ -1059,7 +1059,7 @@ msgstr "Выбрать временные настройки приложени
msgid "Select sound theme"
msgstr "Выбрать звуковую тему"
#: internal/applicationoverrides/ninjam/ninjam.go:145
#: internal/applicationoverrides/ninjam/ninjam.go:159
msgid "Selected channel or control"
msgstr "Выбранный канал или элемент управления"
@@ -1314,7 +1314,7 @@ msgstr ""
msgid "Volume"
msgstr "Громкость"
#: internal/applicationoverrides/ninjam/ninjam.go:253
#: internal/applicationoverrides/ninjam/ninjam.go:270
msgid "Volume and pan {0}"
msgstr "Громкость и панорама {0}"
@@ -1489,6 +1489,10 @@ msgstr "большая"
msgid "carrot"
msgstr "крышка"
#: internal/applicationoverrides/ninjam/ninjam.go:310
msgid "center"
msgstr "центр"
#: internal/presentation/text.go:68
msgid "character {0}"
msgstr "символ {0}"
@@ -1879,6 +1883,10 @@ msgstr "рот на замке"
msgid "magenta"
msgstr "пурпурный"
#: internal/applicationoverrides/ninjam/ninjam.go:300
msgid "minus {0}"
msgstr "минус {0}"
#: internal/app/spellcheck.go:22 internal/app/spellcheck_menu.go
msgid "misspelled"
msgstr "Орфографическая ошибка"
@@ -1911,7 +1919,7 @@ msgstr "перемещает курсор обзора к предыдущему
msgid "moves review to the previous line "
msgstr "Переместить курсор просмотра к предыдущей строке "
#: internal/applicationoverrides/ninjam/ninjam.go:239
#: internal/applicationoverrides/ninjam/ninjam.go:255
msgid "muted"
msgstr "звук выключен"
@@ -1942,11 +1950,11 @@ msgstr "нет текстовой консоли"
msgid "none"
msgstr "нет"
#: internal/applicationoverrides/ninjam/ninjam.go:247
#: internal/applicationoverrides/ninjam/ninjam.go:263
msgid "not receiving"
msgstr "приём выключен"
#: internal/applicationoverrides/ninjam/ninjam.go:242
#: internal/applicationoverrides/ninjam/ninjam.go:258
msgid "not transmitting"
msgstr "передача выключена"
@@ -1980,6 +1988,10 @@ msgstr "Пожалуйста, установите начало и конец."
msgid "plus"
msgstr "плюс"
#: internal/applicationoverrides/ninjam/ninjam.go:303
msgid "plus {0}"
msgstr "плюс {0}"
#: internal/command/descriptions.go:23
msgid "presents the current character."
msgstr "Сообщать текущий символ."
@@ -2026,7 +2038,7 @@ msgstr "Чтение от курсора до конца экрана."
msgid "reads the contents of the current screen"
msgstr "Чтение содержимого текущего экрана."
#: internal/applicationoverrides/ninjam/ninjam.go:249
#: internal/applicationoverrides/ninjam/ninjam.go:265
msgid "receiving"
msgstr "приём включён"
@@ -2227,7 +2239,7 @@ msgstr "Переключение в режим обучения"
msgid "tongue out"
msgstr "высунутый язык"
#: internal/applicationoverrides/ninjam/ninjam.go:244
#: internal/applicationoverrides/ninjam/ninjam.go:260
msgid "transmitting"
msgstr "передача включена"
@@ -2248,7 +2260,7 @@ msgstr "не отмечено"
msgid "underline"
msgstr "Подчеркнутый"
#: internal/applicationoverrides/ninjam/ninjam.go:237
#: internal/applicationoverrides/ninjam/ninjam.go:253
msgid "unmuted"
msgstr "звук включён"
@@ -2292,6 +2304,14 @@ msgstr "{0}, сетка. {1}"
msgid "{0} is already in dictionary"
msgstr "{0} уже находится в словаре"
#: internal/applicationoverrides/ninjam/ninjam.go:313
msgid "{0} percent left"
msgstr "{0} процентов влево"
#: internal/applicationoverrides/ninjam/ninjam.go:316
msgid "{0} percent right"
msgstr "{0} процентов вправо"
#: internal/app/spellcheck_menu.go
msgid "{0} removed"
msgstr "{0} удалено"
@@ -64,9 +64,19 @@ func TestNinjamOverrideTerminalPresentation(t *testing.T) {
if got := paint(1, "0.0dB center", "<Username> new"); !slices.Equal(got, []string{"Master Volume and pan 0.0dB center", "<Username> new"}) {
t.Fatal(got)
}
if got := paint(1, "-0.5dB center", "<Username> new"); !slices.Equal(got, []string{"Master Volume and pan -0.5dB center"}) {
if got := paint(1, "-0.5dB center", "<Username> new"); !slices.Equal(got, []string{"minus 0.5dB"}) {
t.Fatal(got)
}
for _, trial := range []struct{ value, want string }{
{"-0.5dB 1%L", "1 percent left"},
{"-0.5dB center", "center"},
{"-0.5dB 1%R", "1 percent right"},
{"+0.5dB 1%R", "plus 0.5dB"},
} {
if got := paint(1, trial.value, "<Username> new"); !slices.Equal(got, []string{trial.want}) {
t.Fatal(trial.value, got)
}
}
})
}
}
+3 -2
View File
@@ -12,6 +12,7 @@ import (
"os"
"os/exec"
"path/filepath"
"slices"
"strings"
"syscall"
"testing"
@@ -214,13 +215,13 @@ func TestNinjamLiveOverride(t *testing.T) {
start = len(output)
send("\x1bOA")
waitFor("edited volume", 2*time.Second, func() bool {
return focus() != oldValue && strings.Contains(focus(), "Master Volume and pan") && strings.Contains(strings.Join(output[start:], "\n"), focus())
return focus() != oldValue && strings.Contains(focus(), "Master Volume and pan") && slices.Contains(output[start:], "plus 0.5dB")
})
oldValue = focus()
start = len(output)
send("\x1bOD")
waitFor("edited pan", 2*time.Second, func() bool {
return focus() != oldValue && strings.Contains(focus(), "Master Volume and pan") && strings.Contains(strings.Join(output[start:], "\n"), focus())
return focus() != oldValue && strings.Contains(focus(), "Master Volume and pan") && slices.Contains(output[start:], "1 percent left")
})
send("\r")
start = len(output)