Zulip
stable
  • Overview
    • Zulip overview
      • Getting started
    • Contributing to Zulip
      • Community
      • Ways to contribute
      • Your first (codebase) contribution
        • Picking an issue
        • Working on an issue
        • And beyond
      • What makes a great Zulip contributor?
      • Reporting issues
      • User feedback
      • Internship programs
        • Google Summer of Code
      • Zulip Outreach
    • Zulip architectural overview
      • Key Codebases
      • Usage assumptions and concepts
      • Components
        • Django and Tornado
        • nginx
        • Supervisor
        • memcached
        • Redis
        • RabbitMQ
        • PostgreSQL
        • Thumbor and thumbnailing
        • Nagios
      • Glossary
    • Directory structure
      • Core Python files
      • HTML Templates
      • JavaScript and other static assets
      • Tests
      • Management commands
      • Scripts
      • API and Bots
      • Production puppet configuration
      • Additional Django apps
      • Jinja2 Compatibility Files
      • Translation files
      • Documentation
    • The Zulip Roadmap
    • Version History
      • Unreleased
      • 1.9.2 – 2019-01-29
      • 1.9.1 – 2018-11-30
      • 1.9.0 – 2018-11-07
      • 1.8.1 – 2018-05-07
      • 1.8.0 – 2018-04-17
      • 1.7.2 – 2018-04-12
      • 1.7.1 – 2017-11-21
      • 1.7.0 – 2017-10-25
      • 1.6.0 – 2017-06-06
      • 1.5.2 – 2017-06-01
      • 1.5.1 – 2017-02-07
      • 1.5.0 – 2017-02-06
      • 1.4.3 - 2017-01-29
      • 1.4.2 - 2016-09-27
      • 1.4.1 - 2016-09-03
      • 1.4.0 - 2016-08-25
      • 1.3.13 - 2016-06-21
      • 1.3.12 - 2016-05-10
      • 1.3.11 - 2016-05-02
      • 1.3.10 - 2016-01-21
      • 1.3.9 - 2015-11-16
      • 1.3.8 - 2015-11-15
      • 1.3.7 - 2015-10-19
  • Zulip in Production
    • Requirements
      • Server
        • General
        • Operating System
        • Hardware Specifications
        • Network and Security Specifications
        • Domain name
      • Credentials needed
        • SSL Certificate
        • Outgoing email
    • Installing a production server
      • Step 1: Download the latest release
      • Step 2: Install Zulip
        • Installer options
      • Step 3: Create a Zulip organization, and log in
      • Step 4: Configure and use
      • Details: What the installer does
      • Troubleshooting
    • Troubleshooting
      • Using supervisorctl
        • Checking status with supervisorctl status
        • Restarting services with supervisorctl restart all
        • Stopping services with supervisorctl stop all
      • Troubleshooting services
    • Customize Zulip
      • Making changes
      • Specific settings
        • Domain and Email settings
        • Authentication Backends
        • Mobile and desktop apps
        • Terms of Service and Privacy policy
        • Miscellaneous server settings
      • Zulip announcement list
      • Enjoy your Zulip installation!
    • Mobile push notification service
      • How to sign up
      • Updating your server’s registration
      • Why this is necessary
      • Security and privacy
      • Legacy signup
      • Sending push notifications directly from your server
    • Secure, maintain, and upgrade
      • Upgrading
        • Upgrading the distro
        • Preserving local changes to configuration files
        • Troubleshooting with the upgrade log
        • Rolling back to a prior version
        • Updating settings
        • Applying system updates
        • API and your Zulip URL
        • Memory leak mitigation
      • Upgrading from a git repository
        • Upgrading using Git from Zulip 1.6 and older
      • Backups
        • Restore from backups
        • Postgres streaming replication
      • Monitoring
      • Scalability
      • Securing your Zulip server
      • Management commands
        • manage.py shell
        • Grant administrator access
        • Other useful manage.py commands
      • Hosting multiple Zulip organizations
    • Security Model
      • Secure your Zulip server like your email server
      • Encryption and Authentication
        • Passwords
      • Messages and History
      • Users and Bots
      • User-uploaded content
      • Final notes and security response
    • Authentication methods
      • Email and password
      • Plug-and-play SSO (Google, GitHub)
      • LDAP (including Active Directory)
        • Multiple LDAP searches
      • Apache-based SSO with REMOTE_USER
        • Setup instructions for Apache-based SSO
        • Troubleshooting Apache-based SSO
        • Life of an Apache-based SSO login attempt
      • Adding more authentication backends
      • Development only
    • Export and import
      • Backups
      • Export your Zulip data
      • Import into a new Zulip server
      • Logging in
    • Postgres database details
      • Remote Postgres database
      • Debugging postgres database issues
      • Stopping the Zulip postgres database
      • Debugging issues starting postgres
      • Postgres Vacuuming alerts
    • File upload backends
      • S3 backend configuration
      • S3 bucket policy
    • Installing SSL Certificates
      • Manual install
        • Testing
      • Certbot (recommended)
        • At initial Zulip install
        • After Zulip is already installed
        • How it works
      • Self-signed certificate
    • Outgoing email
      • How to configure
      • Email services
        • Free outgoing email services
        • Using system email
        • Using Gmail for outgoing email
        • Logging outgoing email to a file for prototyping
      • Troubleshooting
        • Advanced troubleshooting
    • Deployment options
      • Installing Zulip from Git
      • Zulip in Docker
      • Running Zulip’s service dependencies on different machines
        • Using Zulip with Amazon RDS as the database
      • Putting the Zulip application behind a reverse proxy
        • Installer options
        • nginx configuration
        • HAProxy configuration
        • Other proxies
  • Development Environment
    • Development environment installation
      • Requirements
      • Recommended setup (Vagrant)
      • Advanced setup (non-Vagrant)
      • Slow internet connections
      • Installing remotely
      • Next steps
    • Recommended setup (Vagrant)
      • Requirements
      • Step 0: Set up Git & GitHub
      • Step 1: Install Prerequisites
        • macOS
        • Ubuntu
        • Debian
        • Windows 10
        • Running Git BASH as an administrator
      • Step 2: Get Zulip Code
      • Step 3: Start the development environment
      • Step 4: Developing
        • Where to edit files
        • Understanding run-dev.py debugging output
        • Committing and pushing changes with git
        • Maintaining the development environment
        • Rebuilding the development environment
        • Shutting down the development environment for use later
        • Resuming the development environment
      • Next Steps
      • Troubleshooting and Common Errors
        • Vagrant guest doesn’t show (zulip-py3-venv) at start of prompt
        • Vagrant was unable to mount VirtualBox shared folders
        • ssl read error
        • Unmet dependencies error
        • ssh connection closed by remote host
        • os.symlink error
        • Connection timeout on vagrant up
        • Vagrant was unable to communicate with the guest machine
        • Vagrant up fails with subprocess.CalledProcessError
        • vagrant-lxc errors
        • VT-X unavailability error
        • Permissions errors when running the test suite in LXC
        • ImportError: No module named ‘…’ on MacOS during Vagrant provisioning
      • Specifying a proxy
    • Advanced Setup (non-Vagrant)
      • Installing directly on Ubuntu or Debian
      • Installing manually on Linux
        • On Debian or Ubuntu systems:
        • On Fedora 22 (experimental):
        • On CentOS 7 Core (experimental):
        • On OpenBSD 5.8 (experimental):
        • Common to Fedora/CentOS instructions
        • All Systems:
      • Installing on cloud9
        • Install zulip-cloud9
      • Using Docker (experimental)
    • Using the development environment
    • Developing remotely
      • Connecting to the remote environment
      • Setting up user accounts
      • Setting up the development environment
      • Running the development server
      • Making changes to code on your remote development server
        • Editing locally
        • Editing remotely
        • Next steps
  • Developer Tutorials
    • Writing a new application feature
      • General Process
        • Files impacted
        • Adding a field to the database
        • Backend changes
        • Frontend changes
        • Documentation changes
      • Example Feature
        • Update the model
        • Create the migration
        • Test your migration changes
        • Handle database interactions
        • Update application state
        • Add a new view
        • Backend Tests
        • Update the front end
        • Front End Tests
        • Update documentation
    • Writing views in Zulip
      • What this covers
      • What is a view?
      • Modifying urls.py
      • Writing human-readable views
        • Decorators used for webpage views
        • Writing a template
      • Writing API REST endpoints
        • Request variables
        • Deciding which HTTP verb to use
        • Idempotency
        • Making changes to the database
        • Calling from the web application
        • Calling from an API client
      • Legacy endpoints used by the web client
      • Incoming webhook integrations
    • Life of a Request
      • A request is sent to the server, and handled by Nginx
      • Static files are served directly by Nginx
      • Nginx routes other requests between django and tornado
      • Django routes the request to a view in urls.py files
      • Views serving HTML are internationalized by server path
      • API endpoints use REST
        • PUT is only for creating new things
        • OPTIONS
        • Legacy endpoints are used by the web client
        • Incoming webhook integrations may not be RESTful
      • Django calls rest_dispatch for REST endpoints, and authenticates
      • The view will authorize the user, extract request variables, and validate them
      • Results are given as JSON
    • Reading list
      • General programming/IT
      • Python
      • Java/Android
      • JavaScript/ECMAScript
      • Git/Version Control Systems (VCS)
      • Computer Science/Algorithms
      • Community experience
      • Competitions/Camps
      • Massive Open Online Courses (MOOC) Platforms
    • Screenshot and GIF software
      • Screenshot tools by platform
        • Browser
        • macOS
        • Windows
        • Linux
      • GIF tools by platform
        • Browser
        • macOS
        • Windows
        • Linux
    • Shell tips
      • The prompt ($)
      • Tilde character (~)
      • Change directory (cd)
      • Running commands as root (sudo)
      • Escaping characters
      • Sequencing commands
      • Splitting commands into multiple lines
      • Arguments
      • Shebang
      • Understanding commands
      • Cheatsheet
      • Git
    • Documenting REST API endpoints
      • Usage examples
      • Documenting arguments
      • Displaying example payloads/responses
      • Formatting JSON
  • Git Guide
    • Quick Start
    • Set up Git
      • Install and configure Git, join GitHub
      • Get a graphical client
    • How Git is different
    • Important Git terms
      • branch
      • cache
      • checkout
      • commit
      • fast-forward
      • fetch
      • hash
      • head
      • HEAD
      • index
      • pull
      • push
      • rebase
    • Get Zulip code
      • Step 1a: Create your fork
      • Step 1b: Clone to your machine
      • Step 1c: Connect your fork to Zulip upstream
      • Step 2: Set up the Zulip development environment
      • Step 3: Configure Travis CI (continuous integration)
    • Working copies
      • Workflows
      • Names
      • Relevant git commands
    • Using Git as you work
      • Know what branch you’re working on
      • Keep your fork up to date
      • Work on a feature branch
      • Run linters and tests locally
      • Stage changes
        • Get status of working directory
        • Stage additions with git add
        • Stage deletions with git rm
      • Commit changes
      • Push your commits to GitHub
      • Examine and tidy your commit history
      • Force-push changes to GitHub after you’ve altered your history
    • Pull Requests
      • Work in progress pull requests
      • Create a pull request
        • Step 1: Update your branch with git rebase
        • Step 2: Push your updated branch to your remote fork
        • Step 3: Open the pull request
      • Update a pull request
    • Collaborate
      • Fetch another contributor’s branch
      • Checkout a pull request locally
    • Fixing commits
      • Fixing the last commit
        • Changing the last commit message
        • Changing the last commit
      • Fixing older commits
        • Changing commit messages
        • Deleting old commits
      • Squashing commits
      • Reordering commits
      • Pushing commits after tidying them
    • Reviewing changes
      • Changes on (local) working tree
      • Changes within branches
      • Changes between branches
    • Get and stay out of trouble
      • Undo a merge commit
      • Restore a lost commit
      • Recover from a git rebase failure
      • Working from multiple computers
    • Zulip-specific-tools
      • Set up git repo script
      • Set up Travis CI integration
      • Reset to pull request
      • Fetch a pull request and rebase
      • Fetch a pull request without rebasing
      • Delete unimportant branches
      • Merge conflict on yarn.lock file
    • Git Cheat Sheet
      • Common Commands
      • Detailed Cheat Sheet
  • Code Contribution Guide
    • Version control
      • Commit Discipline
      • Commit Messages
    • Code style and conventions
      • Be consistent!
      • Lint tools
      • Secrets
      • Dangerous constructs
        • Misuse of database queries
        • UserProfile.objects.get() / Client.objects.get / etc.
        • Using Django model objects as keys in sets/dicts
        • user_profile.save()
        • Using raw saves to update important model objects
        • Naive datetime objects
        • x.attr('zid') vs. rows.id(x)
        • JavaScript var
        • JavaScript for (i in myArray)
        • Translation tags
        • State and logs files
      • JS array/object manipulation
      • More arbitrary style things
        • Line length
        • JavaScript
        • HTML / CSS
        • Python
        • Tests
        • Third party code
    • Python static type checker (mypy)
      • mypy stubs for third-party modules.
      • type_debug.py
      • Installing mypy
      • Running mypy on Zulip’s code locally
      • Mypy is there to find bugs in Zulip before they impact users
    • Reviewing Zulip code
      • Principles of code review
        • Anyone can review
        • Please do reviews
        • Fast replies are key
        • Protocol for authors
      • Things to look for
        • Zulip server
      • Tooling
      • Additional Resources
    • The chat.zulip.org community
      • Community norms
      • High traffic community
      • This is a bleeding edge development server
      • Streams
      • Chat meetings
    • Using zulipbot
      • Usage
        • Contributing
    • Accessibility
      • Guidelines
      • Tools
      • GitHub Issues
      • Additional Resources
    • Bug report guidelines
    • Zulip Code of Conduct
      • Expected Behavior
      • Unacceptable Behavior
      • Reporting and Enforcement
      • Scope
      • License and Attribution
    • How to have an amazing summer with Zulip
      • What makes a successful summer
      • Extra notes for mentors
  • Code Testing
    • Testing and writing tests
      • Overview
      • Running tests
      • Other test suites
        • Possible testing issues
        • Internet access inside test suites
      • Schema and initial data changes
      • Wiping the test databases
        • Recreating the postgres cluster
      • Local browser testing (local app + web browser)
        • Clearing the development database
        • JavaScript manual testing
    • Linters
      • Overview
      • Running the linters
      • General considerations
      • Lint checks
      • lint
        • Special options
        • Lint checks
      • Philosophy
        • Speed
        • Accuracy
        • Completeness
    • Backend Django tests
      • Overview
      • Running tests
      • Writing tests
        • Setting up data for tests
        • Testing with mocks
      • Zulip Testing Philosophy
        • Endpoint tests
        • Library tests
        • Fixture-driven tests
        • Mocks and stubs
        • Template tests
        • SQL performance tests
        • Event-based tests
        • Negative tests
      • Testing considerations
    • JavaScript unit tests
      • Coverage reports
      • Handling dependencies in unit tests
      • Creating new test modules
    • Web frontend black-box casperjs tests
      • Debugging Casper.JS
        • Print debugging
        • Remote debugging
        • Reproducing races only seen in Travis CI
      • Writing Casper tests
    • Travis CI
      • Goals
      • Configuration
      • Useful debugging tips and tools
      • Performance optimizations
        • Caching
        • Uninstalling packages
    • Manual testing
      • Basic Stuff
        • Message view
        • Message editing
        • Narrowing
        • Composing messages
        • Popover menus
        • Sidebar filtering
        • Stream permissions
        • Search
        • Stream settings
        • User Settings
        • Keyboard Shorcuts
        • Miscellaneous menu options
        • Inviting users/tutorial
        • To be continued…
  • Subsystems Documentation
    • Provisioning and third-party dependencies
      • Provisioning
        • PROVISION_VERSION
      • Philosophy on adding third-party dependencies
      • System packages
      • Python packages
      • JavaScript and other frontend packages
      • Node and Yarn
      • Other third-party and generated files
        • Emoji
        • Translations data
        • Pygments data
        • Authors data
      • Modifying provisioning
    • Settings system
      • Server settings
        • Testing non-default settings
      • Realm settings
    • Real-time Push and Events
      • Generation system
      • Delivery system
      • The initial data fetch
        • Messages
    • Queue processors
      • Adding a new queue processor
      • Publishing events into a queue
      • Clearing a RabbitMQ queue
    • Custom Apps
      • Definition
      • Problem statement
      • A quick note on bots/integrations
      • Categories of custom apps
        • Stimulus/response and read/write
        • World Reader/Zulip Reader
        • Other classifications
      • World Reader
        • Zulip integrations
      • Zulip Reader
      • Deployment issues
        • Local deployment
        • Non-Zulip dedicated hardware
        • Zulip-side support for reader apps
    • Unread counts and the pointer
      • Pointer logic
        • Recipient bar: message you clicked
        • Search, sidebar click, or new narrowed tab: unread/recent matching narrow
        • Unnarrow: previous sequence
        • New All messages view: “high watermark”
        • Forced reload: state preservation
      • Unread count logic
      • Testing and development
    • Markdown implementation
      • Testing
      • Changing Zulip’s markdown processor
      • Zulip’s Markdown philosophy
      • Zulip’s Changes to Markdown
        • Basic syntax
        • Lists
        • Links
        • Code
        • Other
    • Caching in Zulip
      • Backend caching with memcached
        • The core implementation
        • Cautions
        • Cache invalidation after writes
        • Production deployments and database migrations
        • Automated testing and memcached
        • Performance
      • In-process caching in Django
      • Browser caching of state
    • Realms in Zulip
      • Creating Realms
        • Using Unique Link Generator
        • Enabling Open Realm Creation
      • Subdomains
        • Working With Subdomains In Development Environment
    • Management commands
      • Writing management commands
    • Static asset pipeline
      • Primary build process
      • Adding static files
      • How it works in production
      • Webpack/CommonJS/ES6/Typescript modules
        • Hot Reloading
    • Schema Migrations
      • Automated testing for migrations
    • Renumbering Migrations
    • HTML and CSS
      • Zulip CSS organization
      • Editing Zulip CSS
      • CSS Style guidelines
        • Avoid duplicated code
        • Be consistent with existing similar UI
        • Use clear, unique names for classes and object IDs
      • Validating CSS
    • URL hashes and deep linking
      • Hashchange
      • Server-initiated reloads
      • All reloads
    • Emoji
      • Emoji codes
        • Custom emoji
      • Tooling
      • Picking emoji names
    • Hotspots
      • Adding a new hotspot
        • Step 1: Create hotspot content
        • Step 2: Configure hotspot placement
        • Step 3: Test manually
        • Step 4 (if necessary): Tweak hotspot icon z-index
    • Full-text search
      • The default full-text search implementation
      • An optional full-text search implementation
        • How to enable full-text search across all languages
        • How to disable full-text search across all languages
    • Authentication in the development environment
      • Testing OAuth in development
        • Google
        • GitHub
      • Testing LDAP in development
    • Email
      • Development and testing
      • Email templates
    • Analytics
      • Analytics backend overview
      • The *Count database tables
      • CountStats
      • The FillState table
      • Performance strategy
      • Backend Testing
      • LoggingCountStats
      • Analytics UI development and testing
        • Setup and Testing
        • Adding or editing /stats graphs
        • /activity page
    • HTML templates
      • Behavior
      • Backend
      • Frontend
        • Toolchain
        • Translation
    • Clients in Zulip
      • Analytics
      • Integrations
    • Logging and Error reporting
      • Backend error reporting
        • Backend logging
      • Blueslip frontend error reporting
      • Frontend performance reporting
    • Typing indicators
      • Writing user
      • Server
      • Receiving user
      • Ecosystem
      • Roadmap
    • Users data model
    • Guest users
    • Zulip server release checklist
      • A week before the release
      • Final release preparation
      • Executing the release
      • Post-release
    • Zulip PyPI package release checklist
    • OpenAPI REST API documentation
      • Working with the zulip.yaml file
        • Configuration
        • Endpoint definitions
        • Schemas
      • Zulip Swagger YAML style:
      • Tips for working with YAML:
        • Formatting help:
        • Examples:
    • Exporting data from a large multi-realm Zulip server
      • Draft status
      • Overview
      • Exporting multiple realms’ data when moving to a new server
        • Public Realm Data
        • Cross Realm Data
        • Disjoint User Data
        • Recipient Data
        • File-related Data
        • Message Data
        • Summary
      • Risk Mitigation
        • Generic considerations
        • Approved Transfers
        • Risk factors broken out by data categories
    • UI: Input Pills
      • Setup
      • Basic Usage
      • Typeahead
        • onPillCreate and onPillRemove methods
    • Thumbnailing
      • URL design
      • Avatars, realm icons, and custom emoji
    • Presence
    • Unread message synchronization
    • Billing
      • General architecture
      • BillingProcessor
    • Documentation systems
      • Developer and sysadmin documentation
      • Core website documentation
      • General user documentation
    • User documentation
      • Editing and testing
      • Writing documentation
        • User interface
      • Features
        • Images
        • Icons
        • Macros
        • Tips and warnings
    • Documenting an integration
      • Markdown macros
      • Writing guidelines
        • General writing guidelines
        • Guidelines for specific steps
        • Screenshots
    • Widgets (experimental)
      • Overview
      • Simple slash commands
        • Data flow
        • Availability
      • Poll, todo lists, and games
        • Data flow
        • Backward compatibility
        • Adding widgets
      • zform (Trivia Quiz bot)
      • Data flow
      • Slash commands
  • Translating Zulip
    • Translation Guidelines
      • Translation style guides
      • Capitalization
      • Translation process
      • Translators’ workflow
      • Testing translations
      • Setting the default language in Zulip
      • Translation resource files
      • HTML Templates
      • Backend translations
      • Frontend translations
        • Handlebars templates
      • Transifex config
      • Transifex CLI setup
    • Chinese translation style guide(中文翻译指南)
      • Note(题记)
      • Terms(术语)
      • Phrases(习惯用语)
      • Others(其它)
    • French translation style guide
      • Rules
      • Terms
    • German translation style guide (Richtlinien für die deutsche Übersetzung)
      • Rules
        • Formal or Informal?
        • Form of address
        • Form of instruction
        • Rules for labels
        • Concatenation of words
        • Anglicisms
        • Special characters
        • False friends
        • Other
      • Terms (Begriffe)
      • Phrases (Ausdrücke)
      • Other (Verschiedenes)
    • Hindi translation style guide(हिन्दी अनुवाद शैली मार्गदर्शक)
      • Terms(शर्तें)
      • Phrases (वाक्यांशों)
      • Others(अन्य)
    • Polish translation style guide
      • Special terms used in Zulip
    • Russian Translation Style Guide
      • Перевод некоторых терминов
    • Spanish Translation Style Guide
      • Términos
      • Frases
      • Otros
  • Index
Zulip
  • Docs »
  • Translating Zulip
  • Edit on GitHub

Translating Zulip¶

  • Translation Guidelines
    • Translation style guides
    • Capitalization
    • Translation process
    • Translators’ workflow
    • Testing translations
    • Setting the default language in Zulip
    • Translation resource files
    • HTML Templates
    • Backend translations
    • Frontend translations
      • Handlebars templates
    • Transifex config
    • Transifex CLI setup
  • Chinese translation style guide(中文翻译指南)
    • Note(题记)
    • Terms(术语)
    • Phrases(习惯用语)
    • Others(其它)
  • French translation style guide
    • Rules
    • Terms
  • German translation style guide (Richtlinien für die deutsche Übersetzung)
    • Rules
      • Formal or Informal?
      • Form of address
      • Form of instruction
      • Rules for labels
      • Concatenation of words
      • Anglicisms
      • Special characters
      • False friends
      • Other
    • Terms (Begriffe)
    • Phrases (Ausdrücke)
    • Other (Verschiedenes)
  • Hindi translation style guide(हिन्दी अनुवाद शैली मार्गदर्शक)
    • Terms(शर्तें)
    • Phrases (वाक्यांशों)
    • Others(अन्य)
  • Polish translation style guide
    • Special terms used in Zulip
  • Russian Translation Style Guide
    • Перевод некоторых терминов
  • Spanish Translation Style Guide
    • Términos
    • Frases
    • Otros
Next Previous

© Copyright 2015-2018, The Zulip Team. Revision 8e7ac21f.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: stable
Versions
latest
stable
1.9.2
1.9.1
1.9.0
1.8.1
1.8.0
Downloads
htmlzip
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.