Django 1.10: Fix i18n tests.

SimpleCookie does not accept unicode strings and the name of
Simplified Chinese is changed to zh-HANS.
This commit is contained in:
Umair Khan 2016-11-08 15:36:32 +05:00
parent ee3ec96f38
commit 86b75aade2
3 changed files with 2594 additions and 2 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,291 @@
{
"EDITED": "EDITED",
"Current password": "Current password",
"Stream color": "Stream color",
"Deactivate now": "Deactivate now",
"Error deactivating account": "Error deactivating account",
"Are you sure you want to do this?": "Are you sure you want to do this?",
"View Source / Edit Topic": "View Source / Edit Topic",
"I want:": "I want:",
"No description.": "No description.",
"Unmute the topic <b>__topic_name__</b>": "Unmute the topic <b>__topic_name__</b>",
"Do you want to skip to your latest messages?": "Do you want to skip to your latest messages?",
"(no topic)": "(no topic)",
"Yes, delete this stream": "Yes, delete this stream",
"Add extra emoji for members of the __realm_name__ organization.": "Add extra emoji for members of the __realm_name__ organization.",
"Get API key": "Get API key",
"Delete stream": "Delete stream",
"Topic editing only": "Topic editing only",
"New users must be invited by e-mail!": "New users must be invited by e-mail!",
"Users can edit old messages": "Users can edit old messages",
"Upload avatar": "Upload avatar",
"Remove from default": "Remove from default",
"Only Admins may now create new streams!": "Only Admins may now create new streams!",
"If checked, only users with an e-mail address ending in __atdomains_string__ will be able to join the organization.": "If checked, only users with an e-mail address ending in __atdomains_string__ will be able to join the organization.",
"E-mail invitation required": "E-mail invitation required",
"Mark all messages in <b>__topic_name__</b> as read": "Mark all messages in <b>__topic_name__</b> as read",
"You can send emails to __page_params.product_name__! Just copy and use this address as an email recipient, and:": "You can send emails to __page_params.product_name__! Just copy and use this address as an email recipient, and:",
"Old password": "Old password",
"Please remove @all / @everyone or acknowledge that you will be spamming everyone!": "Please remove @all / @everyone or acknowledge that you will be spamming everyone!",
"Emoji URL": "Emoji URL",
"You'll receive notifications when a message arrives and __page_params.product_name__ isn't in focus or the message is offscreen.": "You'll receive notifications when a message arrives and __page_params.product_name__ isn't in focus or the message is offscreen.",
"Narrow to stream &quot;__display_recipient__&quot;": "Narrow to stream &quot;__display_recipient__&quot;",
"Full name": "Full name",
"Message edit limit in minutes (0 for no limit)": "Message edit limit in minutes (0 for no limit)",
"Other notifications I want:": "Other notifications I want:",
"Users can no longer edit their past messages!": "Users can no longer edit their past messages!",
"Error adding subscription": "Error adding subscription",
"New Alert Word": "New Alert Word",
"Private message": "Private message",
"Deleting this stream will immediately unsubscribe everyone, and the stream's content will not be recoverable.": "Deleting this stream will immediately unsubscribe everyone, and the stream's content will not be recoverable.",
"Choose avatar": "Choose avatar",
"Unpin stream <b>__stream.name__</b> from top": "Unpin stream <b>__stream.name__</b> from top",
"Updated notification settings!": "Updated notification settings!",
"Send to stream": "Send to stream",
"\n <p class=\"bot-settings-note padded-container\">\n Looking for our <a href=\"/integrations\" target=\"_blank\">Integrations</a>\n or <a href=\"{{ server_uri }}/api\" target=\"_blank\">API</a> documentation?\n </p>\n ": "\n <p class=\"bot-settings-note padded-container\">\n Looking for our <a href=\"/integrations\" target=\"_blank\">Integrations</a>\n or <a href=\"{{ server_uri }}/api\" target=\"_blank\">API</a> documentation?\n </p>\n ",
"Receive audible notifications": "Receive audible notifications",
"Digest emails when I'm away": "Digest emails when I'm away",
"Bots": "Bots",
"Narrow": "Narrow",
"Save Changes": "Save Changes",
"Email": "Email",
"Narrow to private messages with __message.sender_full_name__": "Narrow to private messages with __message.sender_full_name__",
"Compose a message to <b>__name__</b>": "Compose a message to <b>__name__</b>",
"Note that any bots that you maintain will be disabled.": "Note that any bots that you maintain will be disabled.",
"Any user may now invite new users!": "Any user may now invite new users!",
"mouse_face": "mouse_face",
"Mobile push notifications always (even when online)": "Mobile push notifications always (even when online)",
"Customize avatar": "Customize avatar",
"Please specify a stream": "Please specify a stream",
"Topic": "Topic",
"Administrator settings": "Administrator settings",
"Any user may now create new streams!": "Any user may now create new streams!",
"YES": "YES",
"Link to this conversation": "Link to this conversation",
"This is an <span class=\"icon-vector-lock\"></span> <b>invite-only stream</b>. Only people who have been invited can access its content, but&nbsp;any&nbsp;member&nbsp;of&nbsp;the&nbsp;stream can&nbsp;invite&nbsp;others.": "This is an <span class=\"icon-vector-lock\"></span> <b>invite-only stream</b>. Only people who have been invited can access its content, but&nbsp;any&nbsp;member&nbsp;of&nbsp;the&nbsp;stream can&nbsp;invite&nbsp;others.",
"Add emoji": "Add emoji",
"Make stream public": "Make stream public",
"Unsubscribe from __stream__": "Unsubscribe from __stream__",
"\n <p>Please re-enter your password to confirm your identity.\n (<a href=\"/accounts/password/reset/\" target=\"_blank\">Forgotten it?</a>)</p>\n ": "\n <p>Please re-enter your password to confirm your identity.\n (<a href=\"/accounts/password/reset/\" target=\"_blank\">Forgotten it?</a>)</p>\n ",
"Pin stream <b>__stream.name__</b> to top": "Pin stream <b>__stream.name__</b> to top",
"Your Bots": "Your Bots",
"Users restricted to __domains_string__": "Users restricted to __domains_string__",
"Message sent when you were not subscribed": "Message sent when you were not subscribed",
"Your Account": "Your Account",
"\n <b>Streams</b> are like chat rooms or mailing lists. You can easily\n <b>join</b>, <b>leave</b>, and <b>make</b> them.\n ": "\n <b>Streams</b> are like chat rooms or mailing lists. You can easily\n <b>join</b>, <b>leave</b>, and <b>make</b> them.\n ",
"Mark all messages in <b>__stream.name__</b> as read": "Mark all messages in <b>__stream.name__</b> as read",
"The email will be forwarded to this stream": "The email will be forwarded to this stream",
"Alert Word": "Alert Word",
"The email body will become the __page_params.product_name__ message": "The email body will become the __page_params.product_name__ message",
"Narrow to stream &quot;__display_recipient__&quot;, topic &quot;__subject__&quot;": "Narrow to stream &quot;__display_recipient__&quot;, topic &quot;__subject__&quot;",
"Reply": "Reply",
"Unmute the topic <b>__subject__</b>": "Unmute the topic <b>__subject__</b>",
"Save": "Save",
"Compose a message to stream <b>__stream.name__</b>": "Compose a message to stream <b>__stream.name__</b>",
"See the rest of this message": "See the rest of this message",
"Change stream description": "Change stream description",
"Username": "Username",
"Desktop notifications": "Desktop notifications",
"\n <p>Lets everyone know about the new stream,<br />\n even if you don't add them.</p>\n ": "\n <p>Lets everyone know about the new stream,<br />\n even if you don't add them.</p>\n ",
"Email address": "Email address",
"Are you sure you want to message all <strong>__count__</strong> people in this stream?": "Are you sure you want to message all <strong>__count__</strong> people in this stream?",
"Failed to generate preview": "Failed to generate preview",
"Mute the topic <b>__subject__</b>": "Mute the topic <b>__subject__</b>",
"Check all": "Check all",
"\n <p class=\"alert-word-settings-note\">\n {{t \"Alert words allow you to be notified as if you were @-mentioned\n when certain words or phrases are used in Zulip.\"}}\n </p>\n ": "\n <p class=\"alert-word-settings-note\">\n {{t \"Alert words allow you to be notified as if you were @-mentioned\n when certain words or phrases are used in Zulip.\"}}\n </p>\n ",
"Users can now edit the content and topics of all their past messages!": "Users can now edit the content and topics of all their past messages!",
"Add a New Alert Word": "Add a New Alert Word",
"Already subscribed to __stream__": "Already subscribed to __stream__",
"Streams Deletion": "Streams Deletion",
"Delete Alert Word": "Delete Alert Word",
"Narrow to topic <b>__topic_name__</b>": "Narrow to topic <b>__topic_name__</b>",
"Emoji name": "Emoji name",
"Generate new API Key": "Generate new API Key",
"Un-collapse": "Un-collapse",
"Clear avatar": "Clear avatar",
"Receive desktop notifications": "Receive desktop notifications",
"Settings": "Settings",
"Send __message.sender_full_name__ a private message": "Send __message.sender_full_name__ a private message",
"Change only this message topic": "Change only this message topic",
"Error getting API key": "Error getting API key",
"You and __display_reply_to__": "You and __display_reply_to__",
"Select Default Language": "Select Default Language",
"API Key": "API Key",
"[More...]": "[More...]",
"Rename stream": "Rename stream",
"New password": "New password",
"Show/change your API key": "Show/change your API key",
"<strong>__name__</strong> is not subscribed to this stream.": "<strong>__name__</strong> is not subscribed to this stream.",
"Choose custom color": "Choose custom color",
"[Condense this message]": "[Condense this message]",
"Narrow to private messages with <b>__name__</b>": "Narrow to private messages with <b>__name__</b>",
"You need to be running Zephyr mirroring in order to send messages!": "You need to be running Zephyr mirroring in order to send messages!",
"Your API key:": "Your API key:",
"Error creating stream": "Error creating stream",
"Delete": "Delete",
"Generate new API key": "Generate new API key",
"The recipient __recipient__ is not valid ": "The recipient __recipient__ is not valid ",
"Change Password": "Change Password",
"A stream needs to have a name": "A stream needs to have a name",
"Sent by <b>__message.sender_full_name__</b>": "Sent by <b>__message.sender_full_name__</b>",
"Email notifications when offline": "Email notifications when offline",
"Image": "Image",
"Add a New Emoji": "Add a New Emoji",
"bot": "bot",
"<p>Messages in __page_params.product_name__ go to a <b>stream</b> and have a <b>topic</b>.</p>": "<p>Messages in __page_params.product_name__ go to a <b>stream</b> and have a <b>topic</b>.</p>",
"Full Bot Name": "Full Bot Name",
"Collapse": "Collapse",
"Display user list on left side in narrow windows.": "Display user list on left side in narrow windows.",
"Filter users": "Filter users",
"Owner": "Owner",
"The stream description has been updated!": "The stream description has been updated!",
"Yes": "Yes",
"This is a <span class=\"icon-vector-globe\"></span> <b>public stream</b>. Anybody in your organization can join.": "This is a <span class=\"icon-vector-globe\"></span> <b>public stream</b>. Anybody in your organization can join.",
"Error updating time format setting": "Error updating time format setting",
"Authentication Methods": "Authentication Methods",
"New users must have e-mails ending in __atdomains_string__!": "New users must have e-mails ending in __atdomains_string__!",
"If checked, users can edit the content and topics of their old messages.": "If checked, users can edit the content and topics of their old messages.",
"Only admins may create streams": "Only admins may create streams",
"A stream with this name already exists": "A stream with this name already exists",
"No": "No",
"Deactivate": "Deactivate",
"Apply this change to all stream subscriptions?": "Apply this change to all stream subscriptions?",
"Stream messages": "Stream messages",
"Administration": "Administration",
"Narrow to messages sent by <b>__name__</b>": "Narrow to messages sent by <b>__name__</b>",
"Narrow to messages sent by __message.sender_full_name__": "Narrow to messages sent by __message.sender_full_name__",
"__minutes__ min to edit": "__minutes__ min to edit",
"Add": "Add",
"Error listing emoji": "Error listing emoji",
"Narrow to stream <b>__stream.name__</b>": "Narrow to stream <b>__stream.name__</b>",
"Default language changed!": "Default language changed!",
"The stream has been renamed!": "The stream has been renamed!",
"Preview": "Preview",
"Edit User": "Edit User",
"Method": "Method",
"Error checking subscription": "Error checking subscription",
"Deactivate Your Account": "Deactivate Your Account",
"__count__ invite remaining": "__count__ invite remaining",
"By deactivating your account, you will be logged out immediately.": "By deactivating your account, you will be logged out immediately.",
"Error updating the stream description": "Error updating the stream description",
"Reactivate": "Reactivate",
"Notifications": "Notifications",
"Remove admin": "Remove admin",
"Default Streams": "Default Streams",
"If non-zero, users can edit their message for this many minutes after it is sent. If zero, users can edit all their past messages.": "If non-zero, users can edit their message for this many minutes after it is sent. If zero, users can edit all their past messages.",
"Unsubscribe": "Unsubscribe",
"Create Bot": "Create Bot",
"Error removing subscription": "Error removing subscription",
"Error renaming stream": "Error renaming stream",
"Save changes": "Save changes",
"Unable to subscribe user": "Unable to subscribe user",
"The email subject will become the __page_params.product_name__ topic": "The email subject will become the __page_params.product_name__ topic",
"Name changed!": "Name changed!",
"It's been a while! Since you were last here, you received <b>__unread_count__</b> new messages.": "It's been a while! Since you were last here, you received <b>__unread_count__</b> new messages.",
"Pin stream to top of left sidebar": "Pin stream to top of left sidebar",
"Listen on": "Listen on",
"If checked, only administrators may invite new users.": "If checked, only administrators may invite new users.",
"Stream Name": "Stream Name",
"Enabled": "Enabled",
"Make stream private": "Make stream private",
"New users must be invited by an admin!": "New users must be invited by an admin!",
"Updated __product_name__ Labs settings!": "Updated __product_name__ Labs settings!",
"Your organization's name": "Your organization's name",
"Password": "Password",
"\n <p class=\"api-key-note\">For most bots using the API, you'll want to give each bot\n its own name and API key using the above section. But if you\n want to write a bot that can access your own private\n messages, you should use your personal API key.\n </p>\n ": "\n <p class=\"api-key-note\">For most bots using the API, you'll want to give each bot\n its own name and API key using the above section. But if you\n want to write a bot that can access your own private\n messages, you should use your personal API key.\n </p>\n ",
"Next": "Next",
"Custom emoji": "Custom emoji",
"Stream settings": "Stream settings",
"If checked, only administrators may create new streams.": "If checked, only administrators may create new streams.",
"Please specify a topic": "Please specify a topic",
"User invited successfully.": "User invited successfully.",
"Unless I say otherwise for a particular stream, I want:": "Unless I say otherwise for a particular stream, I want:",
"Optional": "Optional",
"Add Alert Word": "Add Alert Word",
"Nothing to preview": "Nothing to preview",
"Error changing settings": "Error changing settings",
"If checked, users must be invited in order to join your organization.": "If checked, users must be invited in order to join your organization.",
"Mute the topic <b>__topic_name__</b>": "Mute the topic <b>__topic_name__</b>",
"Only admins may invite": "Only admins may invite",
"You have nothing to send!": "You have nothing to send!",
"The recipients __recipients__ are not valid ": "The recipients __recipients__ are not valid ",
"__seconds__ sec to edit": "__seconds__ sec to edit",
"View Source": "View Source",
"Cancel": "Cancel",
"Close": "Close",
"Subscribe to __stream__": "Subscribe to __stream__",
"Change notification settings for individual streams on your <a href=\"/#subscriptions\">Streams page</a>.": "Change notification settings for individual streams on your <a href=\"/#subscriptions\">Streams page</a>.",
"Deactivated Users": "Deactivated Users",
"Add New Default Stream": "Add New Default Stream",
"Error changing name": "Error changing name",
"Change later messages to this topic": "Change later messages to this topic",
"Subscribed": "Subscribed",
"View source": "View source",
"__page_params.product_name__ Labs": "__page_params.product_name__ Labs",
"Exit Tutorial": "Exit Tutorial",
"{{#if msg/starred}}Unstar{{else}}Star{{/if}} this message": "{{#if msg/starred}}Unstar{{else}}Star{{/if}} this message",
"Mobile push notifications when offline": "Mobile push notifications when offline",
"Muted streams don't show up in your home view or generate notifications unless you are mentioned.": "Muted streams don't show up in your home view or generate notifications unless you are mentioned.",
"Edit bot": "Edit bot",
"right": "right",
"Message to stream <b>__message.stream__</b>": "Message to stream <b>__message.stream__</b>",
"__lang__ is now the default language! You will need to reload the window for your changes to take effect": "__lang__ is now the default language! You will need to reload the window for your changes to take effect",
"New users may have arbitrary e-mails!": "New users may have arbitrary e-mails!",
"Private messages and @-mentions": "Private messages and @-mentions",
"Configure the default streams new users are subscribed to when joining the {{domain}} organization.": "Configure the default streams new users are subscribed to when joining the {{domain}} organization.",
"This is an invite-only stream": "This is an invite-only stream",
"Failed!": "Failed!",
"Mute the stream <b>__stream.name__</b>": "Mute the stream <b>__stream.name__</b>",
"Users": "Users",
"Display Settings": "Display Settings",
"Subscribe": "Subscribe",
"Name successfully updated!": "Name successfully updated!",
"Password strength": "Password strength",
"Warning: the below features are experimental features and may not work as well as you would like.": "Warning: the below features are experimental features and may not work as well as you would like.",
"Audible notifications": "Audible notifications",
"Error listing streams": "Error listing streams",
"Error updating default language setting": "Error updating default language setting",
"By deactivating <strong><span class=\"user_name\"></span></strong> &lt;<span class=\"email\"></span>&gt;, they will be logged out immediately.": "By deactivating <strong><span class=\"user_name\"></span></strong> &lt;<span class=\"email\"></span>&gt;, they will be logged out immediately.",
"\n <p>You can <b>narrow</b> to a stream or topic by <b>clicking on it</b>, or\n see messages from all streams at once from your Home view.</p>\n ": "\n <p>You can <b>narrow</b> to a stream or topic by <b>clicking on it</b>, or\n see messages from all streams at once from your Home view.</p>\n ",
"Authentication methods saved!": "Authentication methods saved!",
"Change previous and following messages to this topic": "Change previous and following messages to this topic",
"more conversations": "more conversations",
"bot_user_name": "bot_user_name",
"Time's up!": "Time's up!",
"Narrow to your private messages with __display_reply_to__": "Narrow to your private messages with __display_reply_to__",
"Configure the authentication methods for the __domain__ organization.": "Configure the authentication methods for the __domain__ organization.",
"Name": "Name",
"Error listing users or bots": "Error listing users or bots",
"\n <p><b>Reply</b> to a message by <b>clicking on it</b>. The stream\n and topic will automatically be filled in.</p>\n ": "\n <p><b>Reply</b> to a message by <b>clicking on it</b>. The stream\n and topic will automatically be filled in.</p>\n ",
"Edit": "Edit",
"Stream membership": "Stream membership",
"\n The <b>topic</b> of a conversation is one or two words that describe\n what it is about, for example: <b>Bug #345</b>, <b>lunch</b>, or\n <b>logo</b>. Don't overthink it.\n ": "\n The <b>topic</b> of a conversation is one or two words that describe\n what it is about, for example: <b>Bug #345</b>, <b>lunch</b>, or\n <b>logo</b>. Don't overthink it.\n ",
"Alert words can't be empty!": "Alert words can't be empty!",
"Make this message take up less space on the screen": "Make this message take up less space on the screen",
"Forgotten it?": "Forgotten it?",
"Default Language": "Default Language",
"Error updating user list placement setting": "Error updating user list placement setting",
"more topics": "more topics",
"New users may sign up online!": "New users may sign up online!",
"Time will be displayed in the __format__-hour format! You will need to reload the window for your changes to take effect": "Time will be displayed in the __format__-hour format! You will need to reload the window for your changes to take effect",
"Unmute the stream <b>__stream.name__</b>": "Unmute the stream <b>__stream.name__</b>",
"Deactivate Account": "Deactivate Account",
"Uncheck all": "Uncheck all",
"Display time in 24-hour format (17:00 instead of 5:00 PM)": "Display time in 24-hour format (17:00 instead of 5:00 PM)",
"Their password will be cleared from our systems, and any bots they maintain will be disabled.": "Their password will be cleared from our systems, and any bots they maintain will be disabled.",
"Confirm password": "Confirm password",
"Alert words allow you to be notified as if you were @-mentioned\n when certain words or phrases are used in Zulip.": "Alert words allow you to be notified as if you were @-mentioned\n when certain words or phrases are used in Zulip.",
"Always auto-scroll to new messages": "Always auto-scroll to new messages",
"Create new stream": "Create new stream",
"Delete bot": "Delete bot",
"Custom emoji added!": "Custom emoji added!",
"Actions": "Actions",
"Enable desktop notifications for new streams": "Enable desktop notifications for new streams",
"Organization settings": "Organization settings",
"User list will appear on the __side__ hand side! You will need to reload the window for your changes to take effect.": "User list will appear on the __side__ hand side! You will need to reload the window for your changes to take effect.",
"Filter by stream name": "Filter by stream name",
"Custom Alert Words": "Custom Alert Words",
"Make admin": "Make admin",
"Please specify at least one recipient": "Please specify at least one recipient",
"left": "left"
}

View File

@ -3,6 +3,7 @@ from __future__ import absolute_import
from typing import Any from typing import Any
import django
import mock import mock
from django.test import TestCase from django.test import TestCase
from django.conf import settings from django.conf import settings
@ -50,7 +51,9 @@ class TranslationTestCase(ZulipTestCase):
] ]
for lang, word in languages: for lang, word in languages:
self.client.cookies = SimpleCookie({settings.LANGUAGE_COOKIE_NAME: lang}) # Applying str function to LANGUAGE_COOKIE_NAME to convert unicode
# into an ascii otherwise SimpleCookie will raise an exception
self.client.cookies = SimpleCookie({str(settings.LANGUAGE_COOKIE_NAME): lang})
response = self.fetch('get', '/integrations/', 200) response = self.fetch('get', '/integrations/', 200)
self.assert_in_response(word, response) self.assert_in_response(word, response)
@ -60,9 +63,14 @@ class TranslationTestCase(ZulipTestCase):
languages = [('en', u'Register'), languages = [('en', u'Register'),
('de', u'Registrieren'), ('de', u'Registrieren'),
('sr', u'Региструј се'), ('sr', u'Региструј се'),
('zh-cn', u'注册'),
] ]
# 'zh-cn' was deprecated in Django 1.10
if django.VERSION >= (1, 10):
languages.append(('zh-hans', u'注册'))
else:
languages.append(('zh-cn', u'注册'))
for lang, word in languages: for lang, word in languages:
response = self.fetch('get', '/{}/integrations/'.format(lang), 200) response = self.fetch('get', '/{}/integrations/'.format(lang), 200)
self.assert_in_response(word, response) self.assert_in_response(word, response)