Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package picard for openSUSE:Factory checked in at 2022-06-16 18:19:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/picard (Old) and /work/SRC/openSUSE:Factory/.picard.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "picard" Thu Jun 16 18:19:54 2022 rev:60 rq:982647 version:2.8.1 Changes: -------- --- /work/SRC/openSUSE:Factory/picard/picard.changes 2022-05-24 20:32:20.170971306 +0200 +++ /work/SRC/openSUSE:Factory/.picard.new.1548/picard.changes 2022-06-16 18:20:11.692078489 +0200 @@ -1,0 +2,15 @@ +Tue Jun 14 11:34:21 UTC 2022 - Antonio Larrosa <[email protected]> + +- Update to 2.8.1: + * Bugfixes + - PICARD-2489 - Preferred Releases UI not loading in Options + menu on FreeBSD + - PICARD-2491 - Crash upon loading album information for + releases with MBID redirects + - PICARD-2493 - If locales for picard-countries or + picard-attributes are missing UI translation is completely + skipped + - PICARD-2494 - Remove empty info dialog for + "[standalone-recordings]" special album entry + +------------------------------------------------------------------- Old: ---- picard-2.8.tar.gz New: ---- picard-2.8.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ picard.spec ++++++ --- /var/tmp/diff_new_pack.majhRd/_old 2022-06-16 18:20:12.400079496 +0200 +++ /var/tmp/diff_new_pack.majhRd/_new 2022-06-16 18:20:12.404079502 +0200 @@ -17,7 +17,7 @@ Name: picard -Version: 2.8 +Version: 2.8.1 Release: 0 Summary: The Next Generation MusicBrainz Tagger License: GPL-2.0-or-later ++++++ picard-2.8.tar.gz -> picard-2.8.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/NEWS.md new/picard-release-2.8.1/NEWS.md --- old/picard-release-2.8/NEWS.md 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/NEWS.md 2022-06-07 08:10:30.000000000 +0200 @@ -1,3 +1,13 @@ +# Version 2.8.1 - 2022-06-07 + +## Bugfixes + +- [PICARD-2489](https://tickets.metabrainz.org/browse/PICARD-2489) - Preferred Releases UI not loading in Options menu on FreeBSD +- [PICARD-2491](https://tickets.metabrainz.org/browse/PICARD-2491) - Crash upon loading album information for releases with MBID redirects +- [PICARD-2493](https://tickets.metabrainz.org/browse/PICARD-2493) - If locales for picard-countries or picard-attributes are missing UI translation is completely skipped +- [PICARD-2494](https://tickets.metabrainz.org/browse/PICARD-2494) - Remove empty info dialog for "[standalone-recordings]" special album entry + + # Version 2.8 - 2022-05-24 ## Tasks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/__init__.py new/picard-release-2.8.1/picard/__init__.py --- old/picard-release-2.8/picard/__init__.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/__init__.py 2022-06-07 08:10:30.000000000 +0200 @@ -42,7 +42,7 @@ PICARD_DISPLAY_NAME = "MusicBrainz Picard" PICARD_APP_ID = "org.musicbrainz.Picard" PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop" -PICARD_VERSION = Version(2, 8, 0, 'final', 0) +PICARD_VERSION = Version(2, 8, 1, 'final', 0) # optional build version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/album.py new/picard-release-2.8.1/picard/album.py --- old/picard-release-2.8/picard/album.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/album.py 2022-06-07 08:10:30.000000000 +0200 @@ -120,6 +120,12 @@ LOADED = 3 +class ParseResult(IntEnum): + PARSED = 0 + REDIRECT = 1 + MISSING_TRACK_RELS = 2 + + class Album(DataObject, Item): metadata_images_changed = QtCore.pyqtSignal() @@ -208,7 +214,7 @@ album.match_files(self.unmatched_files.files) album.update() self.tagger.remove_album(self) - return False + return ParseResult.REDIRECT else: del self.tagger.albums[self.id] self.tagger.albums[release_id] = self @@ -257,17 +263,20 @@ try: for medium_node in release_node['media']: if medium_node['track-count']: - return 'relations' in medium_node['tracks'][0]['recording'] + if 'relations' in medium_node['tracks'][0]['recording']: + return ParseResult.PARSED + else: + return ParseResult.MISSING_TRACK_RELS except KeyError: pass - return True + return ParseResult.PARSED def _release_request_finished(self, document, http, error): if self.load_task is None: return self.load_task = None - parsed = False + parse_result = None try: if error: self.error_append(http.errorString()) @@ -288,19 +297,21 @@ error = False else: try: - parsed = self._parse_release(document) + parse_result = self._parse_release(document) config = get_config() - if not parsed and config.setting['track_ars']: + if parse_result == ParseResult.MISSING_TRACK_RELS: log.debug('Recording relationships not loaded in initial request for %r, issuing separate requests' % self) self._request_recording_relationships(config=config) - else: + elif parse_result == ParseResult.PARSED: self._run_album_metadata_processors() + elif parse_result == ParseResult.REDIRECT: + error = False except Exception: error = True self.error_append(traceback.format_exc()) finally: self._requests -= 1 - if parsed or error: + if parse_result == ParseResult.PARSED or error: self._finalize_loading(error) def _request_recording_relationships(self, offset=0, limit=RECORDING_QUERY_LIMIT, config=None): @@ -402,6 +413,12 @@ all_media = [] absolutetracknumber = 0 + def _load_track(node, mm, artists, extra_metadata): + nonlocal absolutetracknumber + absolutetracknumber += 1 + extra_metadata['~absolutetracknumber'] = absolutetracknumber + self._finalize_loading_track(node, mm, artists, extra_metadata) + va = self._new_metadata['musicbrainz_albumartistid'] == VARIOUS_ARTISTS_ID djmix_ars = {} @@ -431,37 +448,24 @@ pregap_node = medium_node.get('pregap') if pregap_node: - absolutetracknumber += 1 mm['~discpregap'] = '1' - extra_metadata = { - '~pregap': '1', - '~absolutetracknumber': absolutetracknumber, - } - self._finalize_loading_track(medium_node['pregap'], mm, artists, extra_metadata) + _load_track(pregap_node, mm, artists, {'~pregap': '1'}) for track_node in medium_node.get('tracks', []): - absolutetracknumber += 1 - extra_metadata = { - '~absolutetracknumber': absolutetracknumber, - } - self._finalize_loading_track(track_node, mm, artists, extra_metadata) + _load_track(track_node, mm, artists, {}) for track_node in medium_node.get('data-tracks', []): - absolutetracknumber += 1 - extra_metadata = { - '~datatrack': '1', - '~absolutetracknumber': absolutetracknumber, - } - self._finalize_loading_track(track_node, mm, artists, extra_metadata) + _load_track(track_node, mm, artists, {'~datatrack': '1'}) totalalbumtracks = absolutetracknumber self._new_metadata['~totalalbumtracks'] = totalalbumtracks # Generate a list of unique media, but keep order of first appearance self._new_metadata['media'] = " / ".join(list(OrderedDict.fromkeys(all_media))) + multiartists = len(artists) > 1 for track in self._new_tracks: track.metadata["~totalalbumtracks"] = totalalbumtracks - if len(artists) > 1: + if multiartists: track.metadata["~multiartist"] = "1" del self._release_node del self._release_artist_nodes @@ -864,6 +868,9 @@ def can_browser_lookup(self): return False + def can_view_info(self): + return False + _album_post_removal_processors = PluginFunctions(label='album_post_removal_processors') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/i18n.py new/picard-release-2.8.1/picard/i18n.py --- old/picard-release-2.8/picard/i18n.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/i18n.py 2022-06-07 08:10:30.000000000 +0200 @@ -80,6 +80,15 @@ return language # Just return the language, so at least UI translation works +def _load_translation(domain, localedir, logger): + try: + logger("Loading gettext translation for %s, localedir=%r", domain, localedir) + return gettext.translation(domain, localedir) + except OSError as e: + logger(e) + return gettext.NullTranslations() + + def setup_gettext(localedir, ui_language=None, logger=None): """Setup locales, load translations, install gettext functions.""" if not logger: @@ -95,18 +104,10 @@ os.environ['LANGUAGE'] = os.environ['LANG'] = current_locale QLocale.setDefault(QLocale(current_locale)) logger("Using locale %r", current_locale) - try: - logger("Loading gettext translation, localedir=%r", localedir) - trans = gettext.translation("picard", localedir) - logger("Loading gettext translation (picard-countries), localedir=%r", localedir) - trans_countries = gettext.translation("picard-countries", localedir) - logger("Loading gettext translation (picard-attributes), localedir=%r", localedir) - trans_attributes = gettext.translation("picard-attributes", localedir) - except OSError as e: - logger(e) - trans = gettext.NullTranslations() - trans_countries = gettext.NullTranslations() - trans_attributes = gettext.NullTranslations() + + trans = _load_translation('picard', localedir, logger) + trans_countries = _load_translation('picard-countries', localedir, logger) + trans_attributes = _load_translation('picard-attributes', localedir, logger) trans.install(['ngettext']) builtins.__dict__['gettext_countries'] = trans_countries.gettext diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/ui/collectionmenu.py new/picard-release-2.8.1/picard/ui/collectionmenu.py --- old/picard-release-2.8/picard/ui/collectionmenu.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/ui/collectionmenu.py 2022-06-07 08:10:30.000000000 +0200 @@ -23,8 +23,6 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -import locale - from PyQt5 import ( QtCore, QtGui, @@ -35,6 +33,7 @@ load_user_collections, user_collections, ) +from picard.util import strxfrm class CollectionMenu(QtWidgets.QMenu): @@ -51,7 +50,7 @@ self.actions = [] for id_, collection in sorted(user_collections.items(), key=lambda k_v: - (locale.strxfrm(str(k_v[1])), k_v[0])): + (strxfrm(str(k_v[1])), k_v[0])): action = QtWidgets.QWidgetAction(self) action.setDefaultWidget(CollectionMenuItem(self, collection)) self.addAction(action) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/ui/itemviews.py new/picard-release-2.8.1/picard/ui/itemviews.py --- old/picard-release-2.8/picard/ui/itemviews.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/ui/itemviews.py 2022-06-07 08:10:30.000000000 +0200 @@ -47,7 +47,6 @@ heappop, heappush, ) -from locale import strxfrm from PyQt5 import ( QtCore, @@ -85,6 +84,7 @@ natsort, normpath, restore_method, + strxfrm, ) from picard.ui.collectionmenu import CollectionMenu diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/ui/options/interface.py new/picard-release-2.8.1/picard/ui/options/interface.py --- old/picard-release-2.8/picard/ui/options/interface.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/ui/options/interface.py 2022-06-07 08:10:30.000000000 +0200 @@ -29,7 +29,6 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -import locale import os.path from PyQt5 import ( @@ -46,7 +45,10 @@ ) from picard.const import UI_LANGUAGES from picard.const.sys import IS_MACOS -from picard.util import icontheme +from picard.util import ( + icontheme, + strxfrm, +) from picard.ui import PicardDialog from picard.ui.moveable_list_view import MoveableListView @@ -204,7 +206,7 @@ language_list = [(lang[0], lang[1], _(lang[2])) for lang in UI_LANGUAGES] def fcmp(x): - return locale.strxfrm(x[2]) + return strxfrm(x[2]) for lang_code, native, translation in sorted(language_list, key=fcmp): if native and native != translation: name = '%s (%s)' % (translation, native) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/ui/options/releases.py new/picard-release-2.8.1/picard/ui/options/releases.py --- old/picard-release-2.8/picard/ui/options/releases.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/ui/options/releases.py 2022-06-07 08:10:30.000000000 +0200 @@ -25,7 +25,6 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from locale import strxfrm from operator import itemgetter from PyQt5 import ( @@ -44,6 +43,7 @@ RELEASE_SECONDARY_GROUPS, ) from picard.const.sys import IS_WIN +from picard.util import strxfrm from picard.ui.options import ( OptionsPage, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/util/__init__.py new/picard-release-2.8.1/picard/util/__init__.py --- old/picard-release-2.8/picard/util/__init__.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/util/__init__.py 2022-06-07 08:10:30.000000000 +0200 @@ -44,6 +44,7 @@ from collections.abc import Mapping from itertools import chain import json +from locale import strxfrm as _strxfrm import ntpath from operator import attrgetter import os @@ -1084,3 +1085,21 @@ def any_exception_isinstance(error, type_): """Returns True, if any exception in the exception chain is instance of type_.""" return any(isinstance(err, type_) for err in iter_exception_chain(error)) + + +def strxfrm(string): + """Transforms a string to one that can be used in locale-aware comparisons. + + Wrapper around locale.strxfrm, that never throws OSError. If an OSError + occurs this function will return the string converted to lower case. + + Args: + string: The string to convert + + Returns: A string that can be compared locale-aware + """ + try: + return _strxfrm(string) + except OSError as err: + log.warning('strxfrm(%r) failed: %r', string, err) + return string.lower() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/picard/util/natsort.py new/picard-release-2.8.1/picard/util/natsort.py --- old/picard-release-2.8/picard/util/natsort.py 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/picard/util/natsort.py 2022-06-07 08:10:30.000000000 +0200 @@ -2,7 +2,7 @@ # # Picard, the next-generation MusicBrainz tagger # -# Copyright (C) 2019-2020 Philipp Wolfer +# Copyright (C) 2019-2020, 2022 Philipp Wolfer # Copyright (C) 2020-2021 Laurent Monin # # This program is free software; you can redistribute it and/or @@ -23,9 +23,10 @@ """Functions for natural sorting of strings containing numbers. """ -from locale import strxfrm import re +from picard.util import strxfrm + RE_NUMBER = re.compile(r'(\d+)') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/po/appstream/nl.po new/picard-release-2.8.1/po/appstream/nl.po --- old/picard-release-2.8/po/appstream/nl.po 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/po/appstream/nl.po 2022-06-07 08:10:30.000000000 +0200 @@ -5,7 +5,7 @@ # # Translators: # Luk???? Lalinsk?? <[email protected]>, 2020 -# Maurits Meulenbelt <[email protected]>, 2021 +# Maurits Meulenbelt, 2021 # #, fuzzy msgid "" @@ -14,7 +14,7 @@ "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-01-14 23:03+0100\n" "PO-Revision-Date: 2018-11-25 07:37+0000\n" -"Last-Translator: Maurits Meulenbelt <[email protected]>, 2021\n" +"Last-Translator: Maurits Meulenbelt, 2021\n" "Language-Team: Dutch (https://www.transifex.com/musicbrainz/teams/13846/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/po/attributes/nl.po new/picard-release-2.8.1/po/attributes/nl.po --- old/picard-release-2.8/po/attributes/nl.po 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/po/attributes/nl.po 2022-06-07 08:10:30.000000000 +0200 @@ -2,8 +2,8 @@ # Translators: # reneweesp <[email protected]>, 2017 # Maurits Meulenbelt <email address hidden>, 2012 -# Maurits Meulenbelt <[email protected]>, 2012 -# Maurits Meulenbelt <[email protected]>, 2013-2022 +# Maurits Meulenbelt, 2012 +# Maurits Meulenbelt, 2013-2022 # Nikolai Prokoschenko <email address hidden>, 2011 # Nikolai Prokoschenko <[email protected]>, 2011 # Niko Strijbol <[email protected]>, 2018 @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: MusicBrainz\n" "PO-Revision-Date: 2012-05-24 18:52+0000\n" -"Last-Translator: Maurits Meulenbelt <[email protected]>, 2013-2022\n" +"Last-Translator: Maurits Meulenbelt, 2013-2022\n" "Language-Team: Dutch (http://www.transifex.com/musicbrainz/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -186,7 +186,7 @@ #: DB:release_packaging/description:19 msgctxt "release_packaging" msgid "A box usually containing multiple discs as part of a boxed set." -msgstr "" +msgstr "Een doos met meestal meerdere cd???s als onderdeel van een boxset." #: DB:work_type/description:3 msgctxt "work_type" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/po/countries/nl.po new/picard-release-2.8.1/po/countries/nl.po --- old/picard-release-2.8/po/countries/nl.po 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/po/countries/nl.po 2022-06-07 08:10:30.000000000 +0200 @@ -1,13 +1,13 @@ # # Translators: -# Maurits Meulenbelt <[email protected]>, 2012 -# Maurits Meulenbelt <[email protected]>, 2014-2015 +# Maurits Meulenbelt, 2012 +# Maurits Meulenbelt, 2014-2015 # Nikolai Prokoschenko <[email protected]>, 2011 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "PO-Revision-Date: 2012-05-24 19:20+0000\n" -"Last-Translator: Maurits Meulenbelt <[email protected]>, 2014-2015\n" +"Last-Translator: Maurits Meulenbelt, 2014-2015\n" "Language-Team: Dutch (http://www.transifex.com/musicbrainz/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/po/es.po new/picard-release-2.8.1/po/es.po --- old/picard-release-2.8/po/es.po 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/po/es.po 2022-06-07 08:10:30.000000000 +0200 @@ -84,7 +84,7 @@ msgid "Added %(count)i release to collection \"%(name)s\"" msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "A??adida %(count)i publicaci??n a la colecci??n \"%(name)s\"" -msgstr[1] "" +msgstr[1] "A??adidas %(count)i publicaciones a la colecci??n \"%(name)s\"" msgstr[2] "A??adidas %(count)i publicaciones a la colecci??n \"%(name)s\"" #: picard/collection.py:86 @@ -92,7 +92,7 @@ msgid "Removed %(count)i release from collection \"%(name)s\"" msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "Eliminada %(count)i publicaci??n de la colecci??n \"%(name)s\"" -msgstr[1] "" +msgstr[1] "Eliminadas %(count)i publicaciones de la colecci??n \"%(name)s\"" msgstr[2] "Eliminadas %(count)i publicaciones de la colecci??n \"%(name)s\"" #: picard/collection.py:97 @@ -3675,7 +3675,7 @@ msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i publicaci??n)" -msgstr[1] "" +msgstr[1] "%s (%i publicaciones)" msgstr[2] "%s (%i publicaciones)" #: picard/ui/colors.py:37 @@ -3904,7 +3904,7 @@ msgid "%i file in this track" msgid_plural "%i files in this track" msgstr[0] "%i fichero en esta pista" -msgstr[1] "" +msgstr[1] "%i ficheros en esta pista" msgstr[2] "%i ficheros en esta pista" #: picard/ui/infodialog.py:409 @@ -4215,7 +4215,7 @@ msgid_plural "" "There are %d unsaved files. Closing Picard will lose all unsaved changes." msgstr[0] "Hay %d archivo no guardado. Si cierra Picard perder?? todos los cambios sin guardar." -msgstr[1] "" +msgstr[1] "Hay %d archivos no guardados. Si cierras Picard perder??s todos los cambios sin guardar." msgstr[2] "Hay %d archivos no guardados. Si cierras Picard perder??s todos los cambios sin guardar." #: picard/ui/mainwindow.py:347 @@ -4740,7 +4740,7 @@ msgid "(different across %d item)" msgid_plural "(different across %d items)" msgstr[0] "(var??a en %d elemento)" -msgstr[1] "" +msgstr[1] "(var??a en %d elementos)" msgstr[2] "(var??a en %d elementos)" #: picard/ui/metadatabox.py:120 @@ -4748,7 +4748,7 @@ msgid "(missing from %d item)" msgid_plural "(missing from %d items)" msgstr[0] "(falta en %d elemento)" -msgstr[1] "" +msgstr[1] "(falta en %d elementos)" msgstr[2] "(falta en %d elementos)" #: picard/ui/metadatabox.py:218 @@ -4807,7 +4807,7 @@ msgid "Use Original Value" msgid_plural "Use Original Values" msgstr[0] "" -msgstr[1] "" +msgstr[1] "Usar valor original" msgstr[2] "Usar valor original" #: picard/ui/metadatabox.py:439 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/po/nl.po new/picard-release-2.8.1/po/nl.po --- old/picard-release-2.8/po/nl.po 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/po/nl.po 2022-06-07 08:10:30.000000000 +0200 @@ -6,8 +6,8 @@ # reneweesp <[email protected]>, 2017-2019 # Dogmatica <[email protected]>, 2006 # Jan van Thiel <[email protected]>, 2006 -# Maurits Meulenbelt <[email protected]>, 2012 -# Maurits Meulenbelt <[email protected]>, 2012-2022 +# Maurits Meulenbelt, 2012 +# Maurits Meulenbelt, 2012-2022 # Philipp Wolfer <[email protected]>, 2019-2021 msgid "" msgstr "" @@ -15,7 +15,7 @@ "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2022-05-01 15:38+0200\n" "PO-Revision-Date: 2012-05-29 16:17+0000\n" -"Last-Translator: Maurits Meulenbelt <[email protected]>, 2012-2022\n" +"Last-Translator: Maurits Meulenbelt, 2012-2022\n" "Language-Team: Dutch (http://www.transifex.com/musicbrainz/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.8/po/zh_TW.po new/picard-release-2.8.1/po/zh_TW.po --- old/picard-release-2.8/po/zh_TW.po 2022-05-24 08:02:55.000000000 +0200 +++ new/picard-release-2.8.1/po/zh_TW.po 2022-06-07 08:10:30.000000000 +0200 @@ -7,7 +7,7 @@ # Philipp Wolfer <[email protected]>, 2019-2022 # S B <[email protected]>, 2022 # Shen-Ta Hsieh(BestSteve) <[email protected]>, 2016 -# Shen-Ta Hsieh(BestSteve) <[email protected]>, 2016-2020 +# Shen-Ta Hsieh(BestSteve) <[email protected]>, 2016-2020,2022 # riotism, 2017-2018,2020 msgid "" msgstr "" @@ -15,7 +15,7 @@ "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2022-05-01 15:38+0200\n" "PO-Revision-Date: 2012-05-29 16:17+0000\n" -"Last-Translator: Philipp Wolfer <[email protected]>, 2019-2022\n" +"Last-Translator: Shen-Ta Hsieh(BestSteve) <[email protected]>, 2016-2020,2022\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/musicbrainz/musicbrainz/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -6933,7 +6933,7 @@ #: picard/util/tags.py:53 msgid "Copyright" -msgstr "?????????" +msgstr "??????" #: picard/util/tags.py:55 msgid "Video Director"
