docs: Fix grammar errors found by mwic.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2023-10-09 12:28:43 -07:00 committed by Anders Kaseorg
parent 7807bff526
commit 835ee69c80
30 changed files with 33 additions and 33 deletions

View File

@ -8,7 +8,7 @@
# -f ./Dockerfile-postgresql -t zulip/zulip-postgresql:14 --push . # -f ./Dockerfile-postgresql -t zulip/zulip-postgresql:14 --push .
# Currently the PostgreSQL images do not support automatic upgrading of # Currently the PostgreSQL images do not support automatic upgrading of
# the on-disk data in volumes. So the base image can not currently be upgraded # the on-disk data in volumes. So the base image cannot currently be upgraded
# without users needing a manual pgdump and restore. # without users needing a manual pgdump and restore.
# https://hub.docker.com/r/groonga/pgroonga/tags # https://hub.docker.com/r/groonga/pgroonga/tags

View File

@ -469,7 +469,7 @@ We can see in the traceback that a `SchemaError` was raised in
raise SchemaError(message) from None raise SchemaError(message) from None
``` ```
The next line in the output, let's us know how many errors were found The next line in the output, lets us know how many errors were found
and for what endpoint. and for what endpoint.
```console ```console

View File

@ -38,7 +38,7 @@ help you along.
Don't forget to have fun! Spending a few months coding on open source is an Don't forget to have fun! Spending a few months coding on open source is an
amazing opportunity, and we hope you'll have a blast. Your acceptance to the amazing opportunity, and we hope you'll have a blast. Your acceptance to the
program means that we we are confident that if you put in the effort, your program means that we are confident that if you put in the effort, your
contributions to the open source world will be something you can be proud of for contributions to the open source world will be something you can be proud of for
the rest of your life. the rest of your life.

View File

@ -64,7 +64,7 @@ this file:
rendered content, since the APNS and GCM push notification systems rendered content, since the APNS and GCM push notification systems
don't support richer markup. Mostly, this involves stripping HTML, don't support richer markup. Mostly, this involves stripping HTML,
but there's some syntax we take special care with. Tests for what but there's some syntax we take special care with. Tests for what
this plain-text version of content should be are stored in the this plain-text version of content should be stored in the
`text_content` field. `text_content` field.
If you're going to manually test some changes in the frontend Markdown If you're going to manually test some changes in the frontend Markdown

View File

@ -12,7 +12,7 @@ for Zulip.
Zulip's SCIM integration has the following limitations: Zulip's SCIM integration has the following limitations:
* Provisioning Groups is not yet implemented. * Provisioning Groups is not yet implemented.
* While Zulip's SCIM integration is generic, it has has only been * While Zulip's SCIM integration is generic, it has only been
fully tested and documented with Okta's SCIM provider, and it is fully tested and documented with Okta's SCIM provider, and it is
possible minor adjustments may be required. [Zulip possible minor adjustments may be required. [Zulip
support](/help/contact-support) is happy to help customers configure support](/help/contact-support) is happy to help customers configure
@ -71,7 +71,7 @@ Zulip's SCIM integration has the following limitations:
* **familyName** * **familyName**
1. **Optional:** If you'd like to also sync [user role](/help/roles-and-permissions), 1. **Optional:** If you'd like to also sync [user role](/help/roles-and-permissions),
you can do it by by adding a custom attribute in Okta. Go to the **Profile Editor**, you can do it by adding a custom attribute in Okta. Go to the **Profile Editor**,
click into the entry of the SCIM app you've just set up and **Add Attribute**. click into the entry of the SCIM app you've just set up and **Add Attribute**.
Configure the following: Configure the following:
* **Data type**: `string` * **Data type**: `string`

View File

@ -118,7 +118,7 @@ class zulip_ops::profile::base {
$hosting_provider = zulipconf('machine', 'hosting_provider', 'ec2') $hosting_provider = zulipconf('machine', 'hosting_provider', 'ec2')
if $hosting_provider == 'ec2' { if $hosting_provider == 'ec2' {
# This conditional block is for for whether it's not # This conditional block is for whether it's not
# chat.zulip.org, which uses a different hosting provider. # chat.zulip.org, which uses a different hosting provider.
file { '/root/.ssh/authorized_keys': file { '/root/.ssh/authorized_keys':
ensure => file, ensure => file,

View File

@ -30,7 +30,7 @@ Also you can use optional keys to configure the script and change default values
the HTTP requests made by this tool. the HTTP requests made by this tool.
-d HOST Destination Zulip host for email uploading. Address must contain type of -d HOST Destination Zulip host for email uploading. Address must contain type of
HTTP protocol, i.e "https://example.com". Default value: "https://127.0.0.1". HTTP protocol, e.g. "https://example.com". Default value: "https://127.0.0.1".
-u URL Destination relative for email uploading. Default value: "/email_mirror_message". -u URL Destination relative for email uploading. Default value: "/email_mirror_message".

View File

@ -179,7 +179,7 @@ def try_to_copy_venv(venv_path: str, new_packages: Set[str]) -> bool:
continue continue
old_packages = get_venv_packages(curr_venv_path) old_packages = get_venv_packages(curr_venv_path)
# We only consider using using old virtualenvs that only # We only consider using old virtualenvs that only
# contain packages that we want in our new virtualenv. # contain packages that we want in our new virtualenv.
if not (old_packages - new_packages): if not (old_packages - new_packages):
overlap = new_packages & old_packages overlap = new_packages & old_packages

View File

@ -98,7 +98,7 @@ Its main downside is that contributions to projects other than
zulip/zulip in the last few weeks before a zulip/zulip release will be zulip/zulip in the last few weeks before a zulip/zulip release will be
delayed (i.e. counted in the total for the next zulip/zulip release). delayed (i.e. counted in the total for the next zulip/zulip release).
Expects that all Zulip repositories repositories are in the current working Expects that all Zulip repositories are in the current working
directory, which does not need to be the directory this is run from. directory, which does not need to be the directory this is run from.
# Changes between two major releases. # Changes between two major releases.

View File

@ -68,7 +68,7 @@ export function process_message(message: Message): void {
// case when there is an alert word just before `<` or `>`. // case when there is an alert word just before `<` or `>`.
const check_string = pre_match + match.slice(0, -1); const check_string = pre_match + match.slice(0, -1);
const in_tag = check_string.lastIndexOf("<") > check_string.lastIndexOf(">"); const in_tag = check_string.lastIndexOf("<") > check_string.lastIndexOf(">");
// Matched word is inside a HTML tag so don't perform any highlighting. // Matched word is inside an HTML tag so don't perform any highlighting.
if (in_tag) { if (in_tag) {
return before + word + after; return before + word + after;
} }

View File

@ -273,7 +273,7 @@ function get_end_tr_from_endc($endc) {
// We can tell this is the case because the selection isn't inside a // We can tell this is the case because the selection isn't inside a
// `messagebox-content` div, which is where the message text itself is. // `messagebox-content` div, which is where the message text itself is.
// TODO: Ideally make it so that the selection cannot end there. // TODO: Ideally make it so that the selection cannot end there.
// For now, we find find the message row directly above wherever the // For now, we find the message row directly above wherever the
// selection ended. // selection ended.
if ($endc.closest(".messagebox-content").length === 0) { if ($endc.closest(".messagebox-content").length === 0) {
// If the selection ends within the message following the selected // If the selection ends within the message following the selected

View File

@ -31,7 +31,7 @@ function make_dimen_wrapper(dimen_name, dimen_func) {
export const height = make_dimen_wrapper("height", $.fn.height); export const height = make_dimen_wrapper("height", $.fn.height);
export const width = make_dimen_wrapper("width", $.fn.width); export const width = make_dimen_wrapper("width", $.fn.width);
// TODO: This function let's us use the DOM API instead of jquery // TODO: This function lets us use the DOM API instead of jquery
// (<10x faster) for condense.js, but we want to eventually do a // (<10x faster) for condense.js, but we want to eventually do a
// bigger of refactor `height` and `width` above to do the same. // bigger of refactor `height` and `width` above to do the same.
export function max_message_height() { export function max_message_height() {

View File

@ -707,7 +707,7 @@ export function slug_to_emails(slug: string): string | undefined {
/* /*
It's not super important to be flexible about It's not super important to be flexible about
direct message related slugs, since you would direct message related slugs, since you would
rarely post them to the web, but we we do want rarely post them to the web, but we do want
to support reasonable variations: to support reasonable variations:
99-alice@example.com 99-alice@example.com

View File

@ -109,7 +109,7 @@ function update_ui_and_send_reaction_ajax(message_id, reaction_info) {
export function toggle_emoji_reaction(message_id, emoji_name) { export function toggle_emoji_reaction(message_id, emoji_name) {
// This codepath doesn't support toggling a deactivated realm emoji. // This codepath doesn't support toggling a deactivated realm emoji.
// Since an user can interact with a deactivated realm emoji only by // Since a user can interact with a deactivated realm emoji only by
// clicking on a reaction and that is handled by `process_reaction_click()` // clicking on a reaction and that is handled by `process_reaction_click()`
// method. This codepath is to be used only where there is no chance of an // method. This codepath is to be used only where there is no chance of an
// user interacting with a deactivated realm emoji like emoji picker. // user interacting with a deactivated realm emoji like emoji picker.

View File

@ -56,7 +56,7 @@ export function initialize(): void {
const $target = $(e.target); const $target = $(e.target);
// Spoiler headers can contain Markdown, including links. We // Spoiler headers can contain Markdown, including links. We
// return so that clicking such links will be be processed by // return so that clicking such links will be processed by
// the browser rather than opening the header. // the browser rather than opening the header.
if ($target.closest("a").length > 0) { if ($target.closest("a").length > 0) {
return; return;

View File

@ -668,7 +668,7 @@ export function is_default_stream_id(stream_id: number): boolean {
export function get_name(stream_name: string): string { export function get_name(stream_name: string): string {
// This returns the actual name of a stream if we are subscribed to // This returns the actual name of a stream if we are subscribed to
// it (i.e "Denmark" vs. "denmark"), while falling thru to // it (e.g. "Denmark" vs. "denmark"), while falling thru to
// stream_name if we don't have a subscription. (Stream names // stream_name if we don't have a subscription. (Stream names
// are case-insensitive, but we try to display the actual name // are case-insensitive, but we try to display the actual name
// when we know it.) // when we know it.)

View File

@ -405,7 +405,7 @@ export function initialize() {
}); });
$("#streams_overlay_container").on("keypress", "#change_stream_description", (e) => { $("#streams_overlay_container").on("keypress", "#change_stream_description", (e) => {
// Stream descriptions can not be multiline, so disable enter key // Stream descriptions cannot be multiline, so disable enter key
// to prevent new line // to prevent new line
if (keydown_util.is_enter_event(e)) { if (keydown_util.is_enter_event(e)) {
return false; return false;

View File

@ -100,7 +100,7 @@ export const user_card = new PopoverMenu();
function popover_items_handle_keyboard_with_overrides(key, $items) { function popover_items_handle_keyboard_with_overrides(key, $items) {
/* Variant of popover_items_handle_keyboard with somewhat hacky /* Variant of popover_items_handle_keyboard with somewhat hacky
* logic for for opening the manage menu. */ * logic for opening the manage menu. */
if (!$items) { if (!$items) {
return; return;
} }

View File

@ -109,7 +109,7 @@ function template_stub({filename, actual_render}) {
if (exercise_template) { if (exercise_template) {
// If our dev wants to exercise the actual template, then do so. // If our dev wants to exercise the actual template, then do so.
// We set the in_mid_render bool so that included (i.e partial) // We set the in_mid_render bool so that included (i.e. partial)
// templates get rendered. // templates get rendered.
in_mid_render = true; in_mid_render = true;
const html = actual_render(...args); const html = actual_render(...args);

View File

@ -253,7 +253,7 @@ test("get_streams_for_user", () => {
// #social: current user is can get this as neither this is invite only nor current // #social: current user is can get this as neither this is invite only nor current
// user is a guest. // user is a guest.
// #test: current user is no longer subscribed to a private stream, so // #test: current user is no longer subscribed to a private stream, so
// he can not see whether test_user is subscribed to it. // he cannot see whether test_user is subscribed to it.
assert.deepEqual(stream_data.get_streams_for_user(test_user.user_id).subscribed, [ assert.deepEqual(stream_data.get_streams_for_user(test_user.user_id).subscribed, [
denmark, denmark,
social, social,

View File

@ -316,7 +316,7 @@ test("sort_languages", () => {
assert.deepEqual(test_langs, ["j", "javascript", "java"]); assert.deepEqual(test_langs, ["j", "javascript", "java"]);
// (Only one alias should be shown per language // (Only one alias should be shown per language
// (i.e searching for "js" shouldn't show "javascript") // (e.g. searching for "js" shouldn't show "javascript")
test_langs = ["js", "javascript", "java"]; test_langs = ["js", "javascript", "java"];
test_langs = th.sort_languages(test_langs, "js"); test_langs = th.sort_languages(test_langs, "js");
assert.deepEqual(test_langs, ["js", "java"]); assert.deepEqual(test_langs, ["js", "java"]);

View File

@ -113,7 +113,7 @@
if (!isActive) { if (!isActive) {
if ('ontouchstart' in document.documentElement) { if ('ontouchstart' in document.documentElement) {
// if mobile we we use a backdrop because click events don't delegate // if mobile we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus) $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
} }
$parent.toggleClass('open') $parent.toggleClass('open')

View File

@ -41,7 +41,7 @@ def check_add_realm_emoji(
emoji_file_name = get_emoji_file_name(image_file.name, realm_emoji.id) emoji_file_name = get_emoji_file_name(image_file.name, realm_emoji.id)
# The only user-controlled portion of 'emoji_file_name' is an extension, # The only user-controlled portion of 'emoji_file_name' is an extension,
# which can not contain '..' or '/' or '\', making it difficult to exploit # which cannot contain '..' or '/' or '\', making it difficult to exploit
emoji_file_name = mark_sanitized(emoji_file_name) emoji_file_name = mark_sanitized(emoji_file_name)
emoji_uploaded_successfully = False emoji_uploaded_successfully = False

View File

@ -732,7 +732,7 @@ class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor):
if not self.zmd.image_preview_enabled: if not self.zmd.image_preview_enabled:
return False return False
parsed_url = urllib.parse.urlparse(url) parsed_url = urllib.parse.urlparse(url)
# remove HTML URLs which end with image extensions that can not be shorted # remove HTML URLs which end with image extensions that cannot be shorted
if parsed_url.netloc == "pasteboard.co": if parsed_url.netloc == "pasteboard.co":
return False return False

View File

@ -137,8 +137,8 @@ def resize_emoji(
) -> Tuple[bytes, bool, Optional[bytes]]: ) -> Tuple[bytes, bool, Optional[bytes]]:
# This function returns three values: # This function returns three values:
# 1) Emoji image data. # 1) Emoji image data.
# 2) If emoji is gif i.e animated. # 2) If emoji is gif i.e. animated.
# 3) If is animated then return still image data i.e first frame of gif. # 3) If is animated then return still image data i.e. first frame of gif.
try: try:
im = Image.open(io.BytesIO(image_data)) im = Image.open(io.BytesIO(image_data))

View File

@ -3961,7 +3961,7 @@ paths:
type: object type: object
additionalProperties: additionalProperties:
description: | description: |
Boolean describing whether the authentication method (i.e its key) Boolean describing whether the authentication method (i.e. its key)
is enabled in this organization. is enabled in this organization.
type: boolean type: boolean
description: | description: |
@ -13759,7 +13759,7 @@ paths:
type: object type: object
additionalProperties: additionalProperties:
description: | description: |
Boolean describing whether the authentication method (i.e its key) Boolean describing whether the authentication method (i.e. its key)
is enabled in this organization. is enabled in this organization.
type: boolean type: boolean
description: | description: |

View File

@ -346,7 +346,7 @@ class RealmEmojiTest(ZulipTestCase):
self.assert_json_error(result, "Broken") self.assert_json_error(result, "Broken")
def test_check_admin_realm_emoji(self) -> None: def test_check_admin_realm_emoji(self) -> None:
# Test that an user A is able to remove a realm emoji uploaded by him # Test that a user A is able to remove a realm emoji uploaded by him
# and having same name as a deactivated realm emoji uploaded by some # and having same name as a deactivated realm emoji uploaded by some
# other user B. # other user B.
emoji_author_1 = self.example_user("cordelia") emoji_author_1 = self.example_user("cordelia")

View File

@ -4734,7 +4734,7 @@ class SubscriptionAPITest(ZulipTestCase):
def test_subscribe_to_stream_post_policy_restrict_new_members_stream(self) -> None: def test_subscribe_to_stream_post_policy_restrict_new_members_stream(self) -> None:
""" """
New members can subscribe to streams where they can not post New members can subscribe to streams where they cannot post
""" """
new_member_email = self.nonreg_email("test") new_member_email = self.nonreg_email("test")
self.register(new_member_email, "test") self.register(new_member_email, "test")

View File

@ -158,7 +158,7 @@ def validate_can_delete_message(user_profile: UserProfile, message: Message) ->
# None means no time limit to delete message # None means no time limit to delete message
return return
if (timezone_now() - message.date_sent) > datetime.timedelta(seconds=deadline_seconds): if (timezone_now() - message.date_sent) > datetime.timedelta(seconds=deadline_seconds):
# User can not delete message after deadline time of realm # User cannot delete message after deadline time of realm
raise JsonableError(_("The time limit for deleting this message has passed")) raise JsonableError(_("The time limit for deleting this message has passed"))
return return

View File

@ -195,7 +195,7 @@ def get_bigbluebutton_url(
id = "zulip-" + str(random.randint(100000000000, 999999999999)) id = "zulip-" + str(random.randint(100000000000, 999999999999))
password = b32encode(secrets.token_bytes(20)).decode() # 20 bytes means 32 characters password = b32encode(secrets.token_bytes(20)).decode() # 20 bytes means 32 characters
# We sign our data here to ensure a Zulip user can not tamper with # We sign our data here to ensure a Zulip user cannot tamper with
# the join link to gain access to other meetings that are on the # the join link to gain access to other meetings that are on the
# same bigbluebutton server. # same bigbluebutton server.
signed = Signer().sign_object( signed = Signer().sign_object(