Compare commits

...

3 commits

Author SHA1 Message Date
Philipp Wolfer
1ea90d2d2b Update translation files 2025-04-09 22:31:34 +02:00
Philipp Wolfer
329f696b55 Manage gotext as a tool with go.mod 2025-04-09 22:30:06 +02:00
Philipp Wolfer
5f9c0f24ab Updated dependencies 2025-04-09 22:11:59 +02:00
6 changed files with 124 additions and 115 deletions

17
go.mod
View file

@ -2,7 +2,7 @@ module go.uploadedlobster.com/scotty
go 1.23.0 go 1.23.0
toolchain go1.23.8 toolchain go1.24.2
require ( require (
github.com/Xuanwo/go-locale v1.1.3 github.com/Xuanwo/go-locale v1.1.3
@ -14,15 +14,15 @@ require (
github.com/go-resty/resty/v2 v2.16.5 github.com/go-resty/resty/v2 v2.16.5
github.com/jarcoal/httpmock v1.3.1 github.com/jarcoal/httpmock v1.3.1
github.com/manifoldco/promptui v0.9.0 github.com/manifoldco/promptui v0.9.0
github.com/pelletier/go-toml/v2 v2.2.3 github.com/pelletier/go-toml/v2 v2.2.4
github.com/shkh/lastfm-go v0.0.0-20191215035245-89a801c244e0 github.com/shkh/lastfm-go v0.0.0-20191215035245-89a801c244e0
github.com/spf13/cast v1.7.1 github.com/spf13/cast v1.7.1
github.com/spf13/cobra v1.9.1 github.com/spf13/cobra v1.9.1
github.com/spf13/viper v1.20.1 github.com/spf13/viper v1.20.1
github.com/stretchr/testify v1.10.0 github.com/stretchr/testify v1.10.0
github.com/vbauerster/mpb/v8 v8.9.3 github.com/vbauerster/mpb/v8 v8.9.3
go.uploadedlobster.com/mbtypes v0.2.0 go.uploadedlobster.com/mbtypes v0.4.0
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
golang.org/x/oauth2 v0.29.0 golang.org/x/oauth2 v0.29.0
golang.org/x/text v0.24.0 golang.org/x/text v0.24.0
gorm.io/datatypes v1.2.5 gorm.io/datatypes v1.2.5
@ -38,7 +38,7 @@ require (
github.com/dustin/go-humanize v1.0.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/glebarez/go-sqlite v1.22.0 // indirect github.com/glebarez/go-sqlite v1.22.0 // indirect
github.com/go-sql-driver/mysql v1.9.1 // indirect github.com/go-sql-driver/mysql v1.9.2 // indirect
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect
@ -57,8 +57,11 @@ require (
github.com/spf13/pflag v1.0.6 // indirect github.com/spf13/pflag v1.0.6 // indirect
github.com/subosito/gotenv v1.6.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect
go.uber.org/multierr v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect
golang.org/x/net v0.38.0 // indirect golang.org/x/mod v0.24.0 // indirect
golang.org/x/net v0.39.0 // indirect
golang.org/x/sync v0.13.0 // indirect
golang.org/x/sys v0.32.0 // indirect golang.org/x/sys v0.32.0 // indirect
golang.org/x/tools v0.32.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/mysql v1.5.7 // indirect gorm.io/driver/mysql v1.5.7 // indirect
modernc.org/libc v1.62.1 // indirect modernc.org/libc v1.62.1 // indirect
@ -66,3 +69,5 @@ require (
modernc.org/memory v1.9.1 // indirect modernc.org/memory v1.9.1 // indirect
modernc.org/sqlite v1.37.0 // indirect modernc.org/sqlite v1.37.0 // indirect
) )
tool golang.org/x/text/cmd/gotext

28
go.sum
View file

@ -43,8 +43,8 @@ github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7b
github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM=
github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA=
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/go-sql-driver/mysql v1.9.1 h1:FrjNGn/BsJQjVRuSa8CBrM5BWA9BWoXXat3KrtSb/iI= github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU=
github.com/go-sql-driver/mysql v1.9.1/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA=
@ -93,8 +93,8 @@ github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP
github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA=
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
@ -129,16 +129,16 @@ github.com/vbauerster/mpb/v8 v8.9.3 h1:PnMeF+sMvYv9u23l6DO6Q3+Mdj408mjLRXIzmUmU2
github.com/vbauerster/mpb/v8 v8.9.3/go.mod h1:hxS8Hz4C6ijnppDSIX6LjG8FYJSoPo9iIOcE53Zik0c= github.com/vbauerster/mpb/v8 v8.9.3/go.mod h1:hxS8Hz4C6ijnppDSIX6LjG8FYJSoPo9iIOcE53Zik0c=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uploadedlobster.com/mbtypes v0.2.0 h1:sV9WM5fY8KnnKwKKVRaU3JBEKP4zD7aUX0XQfNZvEdo= go.uploadedlobster.com/mbtypes v0.4.0 h1:D5asCgHsRWufj4Yn5u0IuH2J9z1UuYImYkYIp1Z1Q7s=
go.uploadedlobster.com/mbtypes v0.2.0/go.mod h1:/ZpwXc8oRpDa7EWeGI9xEY+nGhMIVHhTruikZWD4Krg= go.uploadedlobster.com/mbtypes v0.4.0/go.mod h1:Bu1K1Hl77QTAE2Z7QKiW/JAp9KqYWQebkRRfG02dlZM=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98=
golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
@ -152,8 +152,8 @@ golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View file

@ -42,56 +42,56 @@ var messageKeyToIndex = map[string]int{
"\tbackend: %v": 11, "\tbackend: %v": 11,
"\texport: %s": 0, "\texport: %s": 0,
"\timport: %s\n": 1, "\timport: %s\n": 1,
"%v: %v": 52, "%v: %v": 47,
"Aborted": 8, "Aborted": 8,
"Access token": 19, "Access token": 19,
"Access token received, you can use %v now.\n": 28, "Access token received, you can use %v now.\n": 33,
"Append to file": 21, "Append to file": 21,
"Backend": 36, "Backend": 41,
"Check for duplicate listens on import (slower)": 45, "Check for duplicate listens on import (slower)": 24,
"Client ID": 15, "Client ID": 15,
"Client secret": 16, "Client secret": 16,
"Delete the service configuration \"%v\"?": 7, "Delete the service configuration \"%v\"?": 7,
"Directory path": 47, "Directory path": 27,
"Disable auto correction of submitted listens": 24, "Disable auto correction of submitted listens": 25,
"Error: OAuth state mismatch": 27, "Error: OAuth state mismatch": 32,
"Failed reading config: %v": 2, "Failed reading config: %v": 2,
"File path": 20, "File path": 20,
"From timestamp: %v (%v)": 38, "From timestamp: %v (%v)": 43,
"Ignore listens in incognito mode": 48, "Ignore listens in incognito mode": 28,
"Ignore skipped listens": 49, "Ignore skipped listens": 29,
"Ignored duplicate listen %v: \"%v\" by %v (%v)": 46, "Ignored duplicate listen %v: \"%v\" by %v (%v)": 53,
"Import failed, last reported timestamp was %v (%s)": 39, "Import failed, last reported timestamp was %v (%s)": 44,
"Import log:": 51, "Import log:": 46,
"Imported %v of %v %s into %v.": 40, "Imported %v of %v %s into %v.": 45,
"Include skipped listens": 25, "Include skipped listens": 26,
"Latest timestamp: %v (%v)": 41, "Latest timestamp: %v (%v)": 49,
"Minimum playback duration for skipped tracks (seconds)": 50, "Minimum playback duration for skipped tracks (seconds)": 30,
"No": 33, "No": 38,
"Playlist title": 22, "Playlist title": 22,
"Saved service %v using backend %v": 5, "Saved service %v using backend %v": 5,
"Server URL": 17, "Server URL": 17,
"Service": 35, "Service": 40,
"Service \"%v\" deleted\n": 9, "Service \"%v\" deleted\n": 9,
"Service name": 3, "Service name": 3,
"The backend %v requires authentication. Authenticate now?": 6, "The backend %v requires authentication. Authenticate now?": 6,
"Token received, you can close this window now.": 12, "Token received, you can close this window now.": 12,
"Transferring %s from %s to %s...": 37, "Transferring %s from %s to %s...": 42,
"Unique playlist identifier": 23, "Unique playlist identifier": 23,
"Updated service %v using backend %v\n": 10, "Updated service %v using backend %v\n": 10,
"User name": 18, "User name": 18,
"Visit the URL for authorization: %v": 26, "Visit the URL for authorization: %v": 31,
"Yes": 32, "Yes": 37,
"a service with this name already exists": 4, "a service with this name already exists": 4,
"backend %s does not implement %s": 13, "backend %s does not implement %s": 13,
"done": 31, "done": 36,
"exporting": 29, "exporting": 34,
"importing": 30, "importing": 35,
"invalid timestamp string \"%v\"": 53, "invalid timestamp string \"%v\"": 48,
"key must only consist of A-Za-z0-9_-": 43, "key must only consist of A-Za-z0-9_-": 51,
"no configuration file defined, cannot write config": 42, "no configuration file defined, cannot write config": 50,
"no existing service configurations": 34, "no existing service configurations": 39,
"no service configuration \"%v\"": 44, "no service configuration \"%v\"": 52,
"unknown backend \"%s\"": 14, "unknown backend \"%s\"": 14,
} }
@ -103,18 +103,18 @@ var deIndex = []uint32{ // 55 elements
0x000001ac, 0x000001e7, 0x00000213, 0x00000233, 0x000001ac, 0x000001e7, 0x00000213, 0x00000233,
0x0000023d, 0x0000024b, 0x00000256, 0x00000263, 0x0000023d, 0x0000024b, 0x00000256, 0x00000263,
0x00000271, 0x0000027b, 0x0000028e, 0x000002a1, 0x00000271, 0x0000027b, 0x0000028e, 0x000002a1,
0x000002b8, 0x000002ec, 0x0000030d, 0x00000333, 0x000002b8, 0x000002ed, 0x00000321, 0x00000342,
0x0000035d, 0x0000039d, 0x000003a8, 0x000003b3, 0x00000352, 0x00000378, 0x0000039a, 0x000003d8,
// Entry 20 - 3F // Entry 20 - 3F
0x000003ba, 0x000003bd, 0x000003c2, 0x000003eb, 0x000003fe, 0x00000428, 0x00000468, 0x00000473,
0x000003f3, 0x000003fb, 0x00000424, 0x00000442, 0x0000047e, 0x00000485, 0x00000488, 0x0000048d,
0x0000047f, 0x000004aa, 0x000004cd, 0x0000051e, 0x000004b6, 0x000004be, 0x000004c6, 0x000004ef,
0x00000555, 0x0000057c, 0x0000057c, 0x0000057c, 0x0000050d, 0x0000054a, 0x00000575, 0x00000580,
0x0000057c, 0x0000057c, 0x0000057c, 0x0000057c, 0x0000058d, 0x000005b1, 0x000005d4, 0x00000625,
0x0000057c, 0x0000057c, 0x0000057c, 0x0000065c, 0x00000683, 0x00000683,
} // Size: 244 bytes } // Size: 244 bytes
const deData string = "" + // Size: 1404 bytes const deData string = "" + // Size: 1667 bytes
"\x04\x01\x09\x00\x0e\x02Export: %[1]s\x04\x01\x09\x01\x0a\x0e\x02Import:" + "\x04\x01\x09\x00\x0e\x02Export: %[1]s\x04\x01\x09\x01\x0a\x0e\x02Import:" +
" %[1]s\x02Fehler beim Lesen der Konfiguration: %[1]v\x02Servicename\x02e" + " %[1]s\x02Fehler beim Lesen der Konfiguration: %[1]v\x02Servicename\x02e" +
"in Service mit diesem Namen existiert bereits\x02Service %[1]v mit dem B" + "in Service mit diesem Namen existiert bereits\x02Service %[1]v mit dem B" +
@ -126,18 +126,22 @@ const deData string = "" + // Size: 1404 bytes
" geschlossen werden.\x02das backend %[1]s implementiert %[2]s nicht\x02u" + " geschlossen werden.\x02das backend %[1]s implementiert %[2]s nicht\x02u" +
"nbekanntes Backend „%[1]s“\x02Client-ID\x02Client-Secret\x02Server-URL" + "nbekanntes Backend „%[1]s“\x02Client-ID\x02Client-Secret\x02Server-URL" +
"\x02Benutzername\x02Zugriffstoken\x02Dateipfad\x02An Datei anhängen\x02T" + "\x02Benutzername\x02Zugriffstoken\x02Dateipfad\x02An Datei anhängen\x02T" +
"itel der Playlist\x02Eindeutige Playlist-ID\x02Autokorrektur für übermit" + "itel der Playlist\x02Eindeutige Playlist-ID\x02Beim Import auf Listen-Du" +
"telte Titel deaktivieren\x02Übersprungene Titel einbeziehen\x02URL für A" + "plikate prüfen (langsamer)\x02Autokorrektur für übermittelte Titel deakt" +
"utorisierung öffnen: %[1]v\x02Fehler: OAuth-State stimmt nicht überein" + "ivieren\x02Übersprungene Titel einbeziehen\x02Verzeichnispfad\x02Listens" +
"\x04\x00\x01\x0a;\x02Zugriffstoken erhalten, %[1]v kann jetzt verwendet " + " im Inkognito-Modus ignorieren\x02Übersprungene Listens ignorieren\x02Mi" +
"werden.\x02exportiere\x02importiere\x02fertig\x02Ja\x02Nein\x02keine bes" + "nimale Wiedergabedauer für übersprungene Titel (Sekunden)\x02URL für Aut" +
"tehenden Servicekonfigurationen\x02Service\x02Backend\x02Übertrage %[1]s" + "orisierung öffnen: %[1]v\x02Fehler: OAuth-State stimmt nicht überein\x04" +
" von %[2]s nach %[3]s...\x02Ab Zeitstempel: %[1]v (%[2]v)\x02Import fehl" + "\x00\x01\x0a;\x02Zugriffstoken erhalten, %[1]v kann jetzt verwendet werd" +
"geschlagen, letzter Zeitstempel war %[1]v (%[2]s)\x02%[1]v von %[2]v %[3" + "en.\x02exportiere\x02importiere\x02fertig\x02Ja\x02Nein\x02keine bestehe" +
"]s in %[4]v importiert.\x02Letzter Zeitstempel: %[1]v (%[2]v)\x02keine K" + "nden Servicekonfigurationen\x02Service\x02Backend\x02Übertrage %[1]s von" +
"onfigurationsdatei definiert, Konfiguration kann nicht geschrieben werde" + " %[2]s nach %[3]s...\x02Ab Zeitstempel: %[1]v (%[2]v)\x02Import fehlgesc" +
"n\x02Schlüssel darf nur die Zeichen A-Za-z0-9_- beinhalten\x02keine Serv" + "hlagen, letzter Zeitstempel war %[1]v (%[2]s)\x02%[1]v von %[2]v %[3]s i" +
"icekonfiguration „%[1]v“" "n %[4]v importiert.\x02Importlog:\x02%[1]v: %[2]v\x02ungültiger Zeitstem" +
"pel „%[1]v“\x02Letzter Zeitstempel: %[1]v (%[2]v)\x02keine Konfiguration" +
"sdatei definiert, Konfiguration kann nicht geschrieben werden\x02Schlüss" +
"el darf nur die Zeichen A-Za-z0-9_- beinhalten\x02keine Servicekonfigura" +
"tion „%[1]v“"
var enIndex = []uint32{ // 55 elements var enIndex = []uint32{ // 55 elements
// Entry 0 - 1F // Entry 0 - 1F
@ -147,15 +151,15 @@ var enIndex = []uint32{ // 55 elements
0x00000170, 0x0000019f, 0x000001c6, 0x000001de, 0x00000170, 0x0000019f, 0x000001c6, 0x000001de,
0x000001e8, 0x000001f6, 0x00000201, 0x0000020b, 0x000001e8, 0x000001f6, 0x00000201, 0x0000020b,
0x00000218, 0x00000222, 0x00000231, 0x00000240, 0x00000218, 0x00000222, 0x00000231, 0x00000240,
0x0000025b, 0x00000288, 0x000002a0, 0x000002c7, 0x0000025b, 0x0000028a, 0x000002b7, 0x000002cf,
0x000002e3, 0x00000316, 0x00000320, 0x0000032a, 0x000002de, 0x000002ff, 0x00000316, 0x0000034d,
// Entry 20 - 3F // Entry 20 - 3F
0x0000032f, 0x00000333, 0x00000336, 0x00000359, 0x00000374, 0x00000390, 0x000003c3, 0x000003cd,
0x00000361, 0x00000369, 0x00000393, 0x000003b1, 0x000003d7, 0x000003dc, 0x000003e0, 0x000003e3,
0x000003ea, 0x00000414, 0x00000434, 0x00000467, 0x00000406, 0x0000040e, 0x00000416, 0x00000440,
0x0000048c, 0x000004ad, 0x000004dc, 0x00000515, 0x0000045e, 0x00000497, 0x000004c1, 0x000004cd,
0x00000524, 0x00000545, 0x0000055c, 0x00000593, 0x000004da, 0x000004fb, 0x0000051b, 0x0000054e,
0x0000059f, 0x000005ac, 0x000005cd, 0x00000573, 0x00000594, 0x000005cd,
} // Size: 244 bytes } // Size: 244 bytes
const enData string = "" + // Size: 1485 bytes const enData string = "" + // Size: 1485 bytes
@ -169,20 +173,20 @@ const enData string = "" + // Size: 1485 bytes
"eceived, you can close this window now.\x02backend %[1]s does not implem" + "eceived, you can close this window now.\x02backend %[1]s does not implem" +
"ent %[2]s\x02unknown backend \x22%[1]s\x22\x02Client ID\x02Client secret" + "ent %[2]s\x02unknown backend \x22%[1]s\x22\x02Client ID\x02Client secret" +
"\x02Server URL\x02User name\x02Access token\x02File path\x02Append to fi" + "\x02Server URL\x02User name\x02Access token\x02File path\x02Append to fi" +
"le\x02Playlist title\x02Unique playlist identifier\x02Disable auto corre" + "le\x02Playlist title\x02Unique playlist identifier\x02Check for duplicat" +
"ction of submitted listens\x02Include skipped listens\x02Visit the URL f" + "e listens on import (slower)\x02Disable auto correction of submitted lis" +
"or authorization: %[1]v\x02Error: OAuth state mismatch\x04\x00\x01\x0a." + "tens\x02Include skipped listens\x02Directory path\x02Ignore listens in i" +
"\x02Access token received, you can use %[1]v now.\x02exporting\x02import" + "ncognito mode\x02Ignore skipped listens\x02Minimum playback duration for" +
"ing\x02done\x02Yes\x02No\x02no existing service configurations\x02Servic" + " skipped tracks (seconds)\x02Visit the URL for authorization: %[1]v\x02E" +
"e\x02Backend\x02Transferring %[1]s from %[2]s to %[3]s...\x02From timest" + "rror: OAuth state mismatch\x04\x00\x01\x0a.\x02Access token received, yo" +
"amp: %[1]v (%[2]v)\x02Import failed, last reported timestamp was %[1]v (" + "u can use %[1]v now.\x02exporting\x02importing\x02done\x02Yes\x02No\x02n" +
"%[2]s)\x02Imported %[1]v of %[2]v %[3]s into %[4]v.\x02Latest timestamp:" + "o existing service configurations\x02Service\x02Backend\x02Transferring " +
" %[1]v (%[2]v)\x02no configuration file defined, cannot write config\x02" + "%[1]s from %[2]s to %[3]s...\x02From timestamp: %[1]v (%[2]v)\x02Import " +
"key must only consist of A-Za-z0-9_-\x02no service configuration \x22%[1" + "failed, last reported timestamp was %[1]v (%[2]s)\x02Imported %[1]v of %" +
"]v\x22\x02Check for duplicate listens on import (slower)\x02Ignored dupl" + "[2]v %[3]s into %[4]v.\x02Import log:\x02%[1]v: %[2]v\x02invalid timesta" +
"icate listen %[1]v: \x22%[2]v\x22 by %[3]v (%[4]v)\x02Directory path\x02" + "mp string \x22%[1]v\x22\x02Latest timestamp: %[1]v (%[2]v)\x02no configu" +
"Ignore listens in incognito mode\x02Ignore skipped listens\x02Minimum pl" + "ration file defined, cannot write config\x02key must only consist of A-Z" +
"ayback duration for skipped tracks (seconds)\x02Import log:\x02%[1]v: %[" + "a-z0-9_-\x02no service configuration \x22%[1]v\x22\x02Ignored duplicate " +
"2]v\x02invalid timestamp string \x22%[1]v\x22" "listen %[1]v: \x22%[2]v\x22 by %[3]v (%[4]v)"
// Total table size 3377 bytes (3KiB); checksum: 6715024 // Total table size 3640 bytes (3KiB); checksum: 719A868A

View file

@ -258,11 +258,11 @@
{ {
"id": "Check for duplicate listens on import (slower)", "id": "Check for duplicate listens on import (slower)",
"message": "Check for duplicate listens on import (slower)", "message": "Check for duplicate listens on import (slower)",
"translation": "" "translation": "Beim Import auf Listen-Duplikate prüfen (langsamer)"
}, },
{ {
"id": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMbid})", "id": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMBID})",
"message": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMbid})", "message": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMBID})",
"translation": "", "translation": "",
"placeholders": [ "placeholders": [
{ {
@ -290,12 +290,12 @@
"expr": "l.ArtistName()" "expr": "l.ArtistName()"
}, },
{ {
"id": "RecordingMbid", "id": "RecordingMBID",
"string": "%[4]v", "string": "%[4]v",
"type": "go.uploadedlobster.com/scotty/internal/models.MBID", "type": "go.uploadedlobster.com/mbtypes.MBID",
"underlyingType": "string", "underlyingType": "string",
"argNum": 4, "argNum": 4,
"expr": "l.RecordingMbid" "expr": "l.RecordingMBID"
} }
] ]
}, },
@ -312,22 +312,22 @@
{ {
"id": "Directory path", "id": "Directory path",
"message": "Directory path", "message": "Directory path",
"translation": "" "translation": "Verzeichnispfad"
}, },
{ {
"id": "Ignore listens in incognito mode", "id": "Ignore listens in incognito mode",
"message": "Ignore listens in incognito mode", "message": "Ignore listens in incognito mode",
"translation": "" "translation": "Listens im Inkognito-Modus ignorieren"
}, },
{ {
"id": "Ignore skipped listens", "id": "Ignore skipped listens",
"message": "Ignore skipped listens", "message": "Ignore skipped listens",
"translation": "" "translation": "Übersprungene Listens ignorieren"
}, },
{ {
"id": "Minimum playback duration for skipped tracks (seconds)", "id": "Minimum playback duration for skipped tracks (seconds)",
"message": "Minimum playback duration for skipped tracks (seconds)", "message": "Minimum playback duration for skipped tracks (seconds)",
"translation": "" "translation": "Minimale Wiedergabedauer für übersprungene Titel (Sekunden)"
}, },
{ {
"id": "Visit the URL for authorization: {Url}", "id": "Visit the URL for authorization: {Url}",
@ -525,12 +525,12 @@
{ {
"id": "Import log:", "id": "Import log:",
"message": "Import log:", "message": "Import log:",
"translation": "" "translation": "Importlog:"
}, },
{ {
"id": "{Type}: {Message}", "id": "{Type}: {Message}",
"message": "{Type}: {Message}", "message": "{Type}: {Message}",
"translation": "", "translation": "{Type}: {Message}",
"placeholders": [ "placeholders": [
{ {
"id": "Type", "id": "Type",
@ -553,7 +553,7 @@
{ {
"id": "invalid timestamp string \"{FlagValue}\"", "id": "invalid timestamp string \"{FlagValue}\"",
"message": "invalid timestamp string \"{FlagValue}\"", "message": "invalid timestamp string \"{FlagValue}\"",
"translation": "", "translation": "ungültiger Zeitstempel „{FlagValue}“",
"placeholders": [ "placeholders": [
{ {
"id": "FlagValue", "id": "FlagValue",

View file

@ -311,9 +311,9 @@
"fuzzy": true "fuzzy": true
}, },
{ {
"id": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMbid})", "id": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMBID})",
"message": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMbid})", "message": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMBID})",
"translation": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMbid})", "translation": "Ignored duplicate listen {ListenedAt}: \"{TrackName}\" by {ArtistName} ({RecordingMBID})",
"translatorComment": "Copied from source.", "translatorComment": "Copied from source.",
"placeholders": [ "placeholders": [
{ {
@ -341,12 +341,12 @@
"expr": "l.ArtistName()" "expr": "l.ArtistName()"
}, },
{ {
"id": "RecordingMbid", "id": "RecordingMBID",
"string": "%[4]v", "string": "%[4]v",
"type": "go.uploadedlobster.com/scotty/internal/models.MBID", "type": "go.uploadedlobster.com/mbtypes.MBID",
"underlyingType": "string", "underlyingType": "string",
"argNum": 4, "argNum": 4,
"expr": "l.RecordingMbid" "expr": "l.RecordingMBID"
} }
], ],
"fuzzy": true "fuzzy": true

View file

@ -6,4 +6,4 @@ package are published under the conditions of CC0 1.0 Universal (CC0 1.0)
package translations package translations
//go:generate gotext -srclang=en update -out=catalog.go -lang=en,de go.uploadedlobster.com/scotty //go:generate go tool gotext -srclang=en update -out=catalog.go -lang=en,de go.uploadedlobster.com/scotty