Я создаю инструмент, который анализирует Gmail определенные папки (например,' [Gmail] / Вся Почта', '[Gmail] / Спам'). Кажется, что имена локализуются относительно пользовательских настроек локализации, таким образом', [Gmail] / Вся Почта' показывают' [Gmail]/Todos' испанским пользователям, например.
Существует ли нелокализованное каноническое имя для папок Gmail? Способ обнаружить его? Или в худшем варианте развития событий, списке возможных локализованных имен.
UPDATE June 2016
Имейте в виду, что XLIST
в Gmail IMAP был устаревшим в 2013 году и со временем будет удален.
Вместо этого вам нужно будет использовать почтовые ящики SPECIAL-USE.
К сожалению, Gmail не рекламирует эту возможность в соответствии со спецификацией, но она реализована и работает правильно (проверено 09/09/2016) - обратите внимание на флаг \Trash:
C: 55535a988a074191 LIST "" * RETURN (SPECIAL-USE)
S: ...
S: * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Bin"
Обычный LIST также возвращает тот же ответ (я бы сказал, что это ошибка Gmail).
Оригинальный ответ
Есть лучший способ: XLIST command.
Google и Apple разработали специальную IMAP-команду XLIST для решения этой проблемы.
Команда IMAP XLIST возвращает список папок и их хорошо известные флаги (\Inbox, \Drafts, \Trash, \Sent, \Spam):
* XLIST (\HasNoChildren \Inbox) "/" "Inbox"
IMAP клиент Mail.dll (коммерческий продукт, созданный мной) поддерживает команду XLIST. Она используется автоматически, когда сервер рекламирует поддержку этой функции. Подробнее можно прочитать здесь: https://www.limilabs.com/blog/localized-gmail-imap-folders/
Этот пользовательский скрипт имеет очень неполный список с большим количеством вопросительных знаков:
В репозитории Android Email есть еще несколько под res/values-xx/strings.xml
. Он появился в поиске Google для некоторых строк Gmail, так что есть вероятность, что он будет работать. Они могут не обязательно совпадать со строками Gmail, так что предостережение - в нем нет, например, "All Mail", поскольку он предназначен для общего почтового клиента.