beetbox / beetbox/beets

composer not translated from non western language with import/languages set to en

Open
#5,885 3 comments 1 reaction 1 assignee Claimed by @NoDancing View on GitHub
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

Setting import/languages to en works correctly with artist and sort fields but fails with composer field, which remain untranslated.

Tested importing album [[Swan Lake / Sleeping Beauty / Nutcracker Suites](https://musicbrainz.org/release/e83b1528-535a-4055-a868-daa0cf0a6f65)

Log of import operation
```sh
$ beet -vc config.yaml import --from-scratch "/data/Music/Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan"

overlaying configuration: config.yaml
no user configuration found at /home/sergio/.config/beets/config.yaml
data directory: /home/sergio/.config/beets
plugin paths:
Sending event: pluginload
library database: /data/beets/test/musiclibrary.db
library directory: /data/beets/test/Music
Sending event: library_opened
Sending event: import_begin
Sending event: import_task_created
Sending event: import_task_start
Looking up: /data/Music/Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan/Swan Lake _ Sleeping Beauty _ Nutcracker Suites
Tagging Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan - Swan Lake / Sleeping Beauty / Nutcracker Suites
Searching for discovered album ID: e83b1528-535a-4055-a868-daa0cf0a6f65
Requesting MusicBrainz release e83b1528-535a-4055-a868-daa0cf0a6f65
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan - Swan Lake / Sleeping Beauty / Nutcracker Suites (e83b1528-535a-4055-a868-daa0cf0a6f65)
Computing track assignment...
...done.
Success. Distance: 0.00
Album ID match recommendation is 3
ID match.

/data/Music/Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan/Swan Lake _ Sleeping Beauty _ Nutcracker Suites (19 items)
Sending event: import_task_before_choice
Sending event: before_choose_candidate

Match (100.0%):
Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan - Swan Lake / Sleeping Beauty / Nutcracker Suites
MusicBrainz, CD, 1996, XE, Decca Classics, 448 592-2, None
https://musicbrainz.org/release/e83b1528-535a-4055-a868-daa0cf0a6f65
* Artist: Pyotr Ilyich Tchaikovsky; Vienna Philharmonic, Herbert von Karajan
* Album: Swan Lake / Sleeping Beauty / Nutcracker Suites
Sending event: import_task_choice
Sending event: import_task_apply
0 of 19 items replaced
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: import_task_files
Sending event: album_imported
Sending event: import
Sending event: cli_exit
```

Led to this problem:

```sh
beet -vc config.yaml ls -f '$artist | $composer'
overlaying configuration: config.yaml
no user configuration found at /home/sergio/.config/beets/config.yaml
data directory: /home/sergio/.config/beets
plugin paths:
Sending event: pluginload
library database: /data/beets/test/musiclibrary.db
library directory: /data/beets/test/Music
Sending event: library_opened
Parsed query: AndQuery([TrueQuery()])
Parsed sort: NullSort()
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский, Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский, Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский, Пётр Ильич Чайковский
Pyotr Ilyich Tchaikovsky | Пётр Ильич Чайковский
Sending event: cli_exit
```

Here's a link to the music files that trigger the bug (if relevant):

### Setup

* OS: ubuntu
* Python version: 3.12.3
* beets version: 2.3.1
* Turning off plugins made problem go away (yes/no): no plugins present

My configuration (output of `beet config`) is:

```yaml
directory: /data/beets/test/Music
library: /data/beets/test/musiclibrary.db

import:
copy: true
log: "/data/beets/test/import.log"
languages: en
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.