﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
29144	DjangoTranslation.merge() loses catalog fallbacks	Patryk Zawadzki	Patryk Zawadzki	"`gettext` will properly resolve fallbacks for locales. For example asking for `de-de` will result in the following chain of fallbacks: `['de_DE.ISO8859-1', 'de_DE', 'de.ISO8859-1', 'de']`. These are resolved to `GNUTranslations` instances where a translation exists and the instances are turned into a linked list with a single head and a chain of fallbacks.

Django then starts with an empty `GNUTranslations` subclass (`DjangoTranslation`) instance and then merges the `GNUTranslations` instance returned by `gettext` into itself. Only in the process it forgets to carry over any existing fallbacks so the entire tail of the linked list is lost.

The observable bug is that if a generic translation exists for a language (say `pt`) and a sparse territorial variant (say `pt-br`) only provides overrides for certain strings, Django will never fall back to the generic translation, instead filling the missing translations from the default locale."	Bug	closed	Internationalization	2.0	Normal	fixed			Ready for checkin	1	0	0	0	0	0
