1401 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1401 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # SOME DESCRIPTIVE TITLE.
 | |
| # Copyright (C) 2022, The Funkwhale Collective
 | |
| # This file is distributed under the same license as the funkwhale package.
 | |
| # FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
 | |
| #
 | |
| msgid ""
 | |
| msgstr ""
 | |
| "Project-Id-Version: funkwhale 1.2.5\n"
 | |
| "Report-Msgid-Bugs-To: \n"
 | |
| "POT-Creation-Date: 2022-07-03 22:14+0200\n"
 | |
| "PO-Revision-Date: 2022-07-03 23:23+0000\n"
 | |
| "Last-Translator: Ciarán Ainsworth <sporiff@funkwhale.audio>\n"
 | |
| "Language-Team: English (United Kingdom) <https://translate.funkwhale.audio/"
 | |
| "projects/documentation/contributing/en_GB/>\n"
 | |
| "Language: en_GB\n"
 | |
| "MIME-Version: 1.0\n"
 | |
| "Content-Type: text/plain; charset=utf-8\n"
 | |
| "Content-Transfer-Encoding: 8bit\n"
 | |
| "Plural-Forms: nplurals=2; plural=n != 1;\n"
 | |
| "X-Generator: Weblate 4.13\n"
 | |
| "Generated-By: Babel 2.10.1\n"
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:2
 | |
| msgid "Contribute to Funkwhale development"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:4
 | |
| msgid ""
 | |
| "First of all, thank you for your interest in the project! We really "
 | |
| "appreciate the fact that you're about to take some time to read this and "
 | |
| "hack on the project."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:8
 | |
| msgid "This document will guide you through common operations such as:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:10 ../../../CONTRIBUTING.rst:141
 | |
| msgid "Setup your development environment"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:11
 | |
| msgid "Working on your first issue"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:12
 | |
| msgid "Writing unit tests to validate your work"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:13
 | |
| msgid "Submit your work"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:16
 | |
| msgid "The quickest way to contribute to the project is through Gitpod!"
 | |
| msgstr ""
 | |
| 
 | |
| msgid "Open in Gitpod"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:22
 | |
| msgid ""
 | |
| "When you click the button above, you will be redirected to the gitpod.io "
 | |
| "site. Here you can sign in with your Gitlab or GitHub account and a new "
 | |
| "workspace will be automatically created for you."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:26
 | |
| msgid ""
 | |
| "The workspace will checkout current ``development`` branch and run a "
 | |
| "Funkwhale instance with both frontend and backend started so you can jump"
 | |
| " straight into development."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:29
 | |
| msgid ""
 | |
| "The provided backend instance has a default admin user ``gitpod`` "
 | |
| "authenticated with password ``gitpod``."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:32
 | |
| msgid ""
 | |
| "In case you want to develop only frontend, you can go to ``File > Open "
 | |
| "Folder`` and navigate to ``/workspace/funkwhale/front``. This will start "
 | |
| "a new vite server on port 4000. This server integrates well with the "
 | |
| "extension provided by Gitpod but is disconnected from any instance by "
 | |
| "default."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:37
 | |
| msgid "Usage with Gitlab"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:39
 | |
| msgid ""
 | |
| "We understand that having to go to the contribution guide and clicking "
 | |
| "the ``Open in Gitpod`` is not an optimal way to create new branches or "
 | |
| "test existing ones. That's why we've enabled the Gitpod integration on "
 | |
| "our Gitlab server."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:43
 | |
| msgid ""
 | |
| "You can now simply choose to use Gitpod instead of Gitlab Web IDE on any "
 | |
| "of branch, commit or merge request:"
 | |
| msgstr ""
 | |
| 
 | |
| msgid "Select Gitpod as the default Web IDE."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:49
 | |
| msgid "Gitlab Workflow extension"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:51
 | |
| msgid ""
 | |
| "Gitpod offers a `Gitlab Workflow` extension that can help with managing "
 | |
| "Gitlab issues, merge requests and pipelines. To use it you need to create"
 | |
| " a personal access token with ``api`` and ``read_user`` scopes. You can "
 | |
| "create it by visiting `your Gitlab profile settings "
 | |
| "<https://dev.funkwhale.audio/-/profile/personal_access_tokens>`_."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:55
 | |
| msgid ""
 | |
| "Setting the token through the extension is not an optimal approach as "
 | |
| "you'd need to do this every single time you start a new workspace. "
 | |
| "However you can work around this by creating user environment variables "
 | |
| "in `your Gitpod settings <https://gitpod.io/variables>`_."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:59
 | |
| msgid ""
 | |
| "When you configure your environment variables as follows, you will be "
 | |
| "signed in to the extension automatically in old and new workspaces."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:62
 | |
| msgid "Environment variables"
 | |
| msgstr "Environment variables"
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:65 ../../../CONTRIBUTING.rst:88
 | |
| msgid "Name"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:66 ../../../CONTRIBUTING.rst:89
 | |
| msgid "Value"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:67 ../../../CONTRIBUTING.rst:90
 | |
| msgid "Scope"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:68
 | |
| msgid "``GITLAB_WORKFLOW_INSTANCE_URL``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:69
 | |
| msgid "``https://dev.funkwhale.audio``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:70 ../../../CONTRIBUTING.rst:73
 | |
| msgid "``funkwhale/*``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:71
 | |
| msgid "``GITLAB_WORKFLOW_TOKEN``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:72
 | |
| msgid "``TOKEN``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:75
 | |
| msgid ""
 | |
| "The scope ``funkwhale/*`` will ensure that you will be signed into our "
 | |
| "instance on every project that we're hosting, not only Funkwhale itself."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:79
 | |
| msgid "Custom instance url"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:81
 | |
| msgid ""
 | |
| "If you want to preview changes on your own Funkwhale server, you can add "
 | |
| "your domain as an environment variable. This allows you to test your "
 | |
| "frontend changes against your domain without setting this value each "
 | |
| "time. To add your domain, set a user environment variable in `your Gitpod"
 | |
| " settings <https://gitpod.io/variables>`_."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:85
 | |
| msgid "Environment variable"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:91
 | |
| msgid "``VUE_APP_INSTANCE_URL``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:92
 | |
| msgid "``https://funkwhale.example.com``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:93
 | |
| msgid "``funkwhale/funkwhale``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:95
 | |
| msgid ""
 | |
| "The scope ``funkwhale/funkwhale`` ensures that this variable only works "
 | |
| "on Funkwhale."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:98
 | |
| msgid "A quick path to contribute on the front-end"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:100
 | |
| msgid ""
 | |
| "The next sections of this document include a full installation guide to "
 | |
| "help you setup a local, development version of Funkwhale. If you only "
 | |
| "want to fix small things on the front-end, and don't want to manage a "
 | |
| "full development environment, there is another way."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:104
 | |
| msgid ""
 | |
| "As the front-end can work with any Funkwhale server, you can work with "
 | |
| "the front-end only, and make it talk with an existing instance (like the "
 | |
| "demo one, or you own instance, if you have one)."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:107
 | |
| msgid ""
 | |
| "If even that is too much for you, you can also make your changes without "
 | |
| "any development environment, and open a merge request. We will be able to"
 | |
| " review your work easily by spawning automatically a live version of your"
 | |
| " changes, thanks to Gitlab Review apps."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:112
 | |
| msgid "Setup front-end only development environment"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:114
 | |
| msgid "Clone the repository::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:120
 | |
| msgid ""
 | |
| "Install `nodejs <https://nodejs.org/en/download/package-manager/>`_ and "
 | |
| "`yarn <https://yarnpkg.com/lang/en/docs/install/#debian-stable>`_"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:122
 | |
| msgid "Install the dependencies::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:126
 | |
| msgid "Compile the translations::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:130
 | |
| msgid "Launch the development server::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:135
 | |
| msgid ""
 | |
| "Make the front-end talk with an existing server (like "
 | |
| "https://demo.funkwhale.audio or https://open.audio), by clicking on the "
 | |
| "corresponding link in the footer"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:138
 | |
| msgid "Start hacking!"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:143
 | |
| msgid ""
 | |
| "If you want to fix a bug or implement a feature, you'll need to run a "
 | |
| "local, development copy of funkwhale."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:146
 | |
| msgid ""
 | |
| "We provide a docker based development environment, which should be both "
 | |
| "easy to setup and work similarly regardless of your development machine "
 | |
| "setup."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:150
 | |
| msgid ""
 | |
| "Instructions for bare-metal setup will come in the future (Merge requests"
 | |
| " are welcome)."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:154
 | |
| msgid "Installing docker and docker-compose"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:156
 | |
| msgid "This is already cover in the relevant documentations:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:158
 | |
| msgid "https://docs.docker.com/install/"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:159
 | |
| msgid "https://docs.docker.com/compose/install/"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:163
 | |
| msgid ""
 | |
| "If you are on Fedora, know that you can't use `podman` or `moby-engine` "
 | |
| "to set up the development environment. Stick to `docker-ce` and you'll be"
 | |
| " fine."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:167
 | |
| msgid "Cloning the project"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:169
 | |
| msgid ""
 | |
| "Visit https://dev.funkwhale.audio/funkwhale/funkwhale and clone the "
 | |
| "repository using SSH or HTTPS. Example using SSH::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:176
 | |
| msgid ""
 | |
| "As of January 2020, the SSH fingerprints of our Gitlab server are the "
 | |
| "following::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:188
 | |
| msgid "A note about branches"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:190
 | |
| msgid ""
 | |
| "Next release development occurs on the \"develop\" branch, and releases "
 | |
| "are made on the \"stable\" branch. Therefore, when submitting Merge "
 | |
| "Requests, ensure you are merging on the develop branch."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:194
 | |
| msgid "Working with docker"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:196
 | |
| msgid ""
 | |
| "In development, we use the docker-compose file named ``dev.yml``, and "
 | |
| "this is why all our docker-compose commands will look like this::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:200
 | |
| msgid ""
 | |
| "If you do not want to add the ``-f dev.yml`` snippet every time, you can "
 | |
| "run this command before starting your work::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:206
 | |
| msgid "Creating your env file"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:208
 | |
| msgid ""
 | |
| "We provide a working .env.dev configuration file that is suitable for "
 | |
| "development. However, to enable customization on your machine, you should"
 | |
| " also create a .env file that will hold your personal environment "
 | |
| "variables (those will not be commited to the project)."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:213
 | |
| msgid "Create it like this::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:217
 | |
| msgid ""
 | |
| "These two environment variables must be included for the images to load "
 | |
| "in front-end and django admin pages::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:224
 | |
| msgid "Create docker network"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:226
 | |
| msgid "Create the federation network::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:232
 | |
| msgid "Building the containers"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:234
 | |
| msgid ""
 | |
| "On your initial clone, or if there have been some changes in the app "
 | |
| "dependencies, you will have to rebuild your containers. This is done via "
 | |
| "the following command::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:242
 | |
| msgid "Database management"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:244
 | |
| msgid "To setup funkwhale's database schema, run this::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:248
 | |
| msgid ""
 | |
| "This will create all the tables needed for the API to run properly. You "
 | |
| "will also need to run this whenever changes are made on the database "
 | |
| "schema."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:252
 | |
| msgid ""
 | |
| "It is safe to run this command multiple times, so you can run it whenever"
 | |
| " you fetch develop."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:257
 | |
| msgid "Development data"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:259
 | |
| msgid ""
 | |
| "You'll need at least an admin user and some artists/tracks/albums to work"
 | |
| " locally."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:262
 | |
| msgid "Create an admin user with the following command::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:266
 | |
| msgid "Injecting fake data is done by running the following script::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:272
 | |
| msgid ""
 | |
| "The previous command will create 25 artists with random albums, tracks "
 | |
| "and metadata."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:277
 | |
| msgid "Launch all services"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:279
 | |
| msgid "Before the first Funkwhale launch, it is required to run this::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:283
 | |
| msgid "Then you can run everything with::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:287
 | |
| msgid ""
 | |
| "This will launch all services, and output the logs in your current "
 | |
| "terminal window. If you prefer to launch them in the background instead, "
 | |
| "use the ``-d`` flag, and access the logs when you need it via ``docker-"
 | |
| "compose -f dev.yml logs --tail=50 --follow``."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:290
 | |
| msgid "Once everything is up, you can access the various funkwhale's components:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:292
 | |
| msgid "The Vue webapp, on http://localhost:8000"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:293
 | |
| msgid "The API, on http://localhost:8000/api/v1/"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:294
 | |
| msgid "The django admin, on http://localhost:8000/api/admin/"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:297
 | |
| msgid "Stopping everything"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:299
 | |
| msgid ""
 | |
| "Once you're down with your work, you can stop running containers, if any,"
 | |
| " with::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:305
 | |
| msgid "Removing everything"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:307
 | |
| msgid ""
 | |
| "If you want to wipe your development environment completely (e.g. if you "
 | |
| "want to start over from scratch), just run::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:311
 | |
| msgid ""
 | |
| "This will wipe your containers and data, so please be careful before "
 | |
| "running it."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:313
 | |
| msgid "You can keep your data by removing the ``-v`` flag."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:317
 | |
| msgid "Working with federation locally"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:319
 | |
| msgid "This is not needed unless you need to work on federation-related features."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:321
 | |
| msgid "To achieve that, you'll need:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:323
 | |
| msgid "to update your dns resolver to resolve all your .dev hostnames locally"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:324
 | |
| msgid ""
 | |
| "a reverse proxy (such as traefik) to catch those .dev requests and and "
 | |
| "with https certificate"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:326
 | |
| msgid "two instances (or more) running locally, following the regular dev setup"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:329
 | |
| msgid "Resolve .dev names locally"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:331
 | |
| msgid "If you use dnsmasq, this is as simple as doing::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:336
 | |
| msgid "If you use NetworkManager with dnsmasq integration, use this instead::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:342
 | |
| msgid "Add wildcard certificate to the trusted certificates"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:344
 | |
| msgid "Simply copy bundled certificates::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:349
 | |
| msgid "This certificate is a wildcard for ``*.funkwhale.test``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:352
 | |
| msgid "Run a reverse proxy for your instances"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:356
 | |
| msgid "Launch everything"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:358
 | |
| msgid "Launch the traefik proxy::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:362
 | |
| msgid ""
 | |
| "Then, in separate terminals, you can setup as many different instances as"
 | |
| " you need::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:371
 | |
| msgid ""
 | |
| "Note that by default, if you don't export the COMPOSE_PROJECT_NAME, we "
 | |
| "will default to node1 as the name of your instance."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:374
 | |
| msgid ""
 | |
| "Assuming your project name is ``node1``, your server will be reachable at"
 | |
| " ``https://node1.funkwhale.test/``. Not that you'll have to trust the SSL"
 | |
| " Certificate as it's self signed."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:378
 | |
| msgid ""
 | |
| "When working on federation with traefik, ensure you have this in your "
 | |
| "``env``::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:391
 | |
| msgid "Typical workflow for a contribution"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:393
 | |
| msgid ""
 | |
| "Fork the project if you did not already or if you do not have access to "
 | |
| "the main repository"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:394
 | |
| msgid ""
 | |
| "Checkout the development branch and pull most recent changes: ``git "
 | |
| "checkout develop && git pull``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:395
 | |
| msgid ""
 | |
| "If working on an issue, assign yourself to the issue. Otherwise, consider"
 | |
| " open an issue before starting to work on something, especially for new "
 | |
| "features."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:396
 | |
| msgid ""
 | |
| "Create a dedicated branch for your work ``42-awesome-fix``. It is good "
 | |
| "practice to prefix your branch name with the ID of the issue you are "
 | |
| "solving."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:397
 | |
| msgid "Work on your stuff"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:398
 | |
| msgid ""
 | |
| "[Optional] Consider running ``yarn lint`` in ``front`` if you changed "
 | |
| "something there. Consider fixing some linting errors in the files you "
 | |
| "touched."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:400
 | |
| msgid "Commit small, atomic changes to make it easier to review your contribution"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:401
 | |
| msgid ""
 | |
| "Add a changelog fragment to summarize your changes: ``echo \"Implemented "
 | |
| "awesome stuff (#42)\" > changes/changelog.d/42.feature``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:402
 | |
| msgid "Push your branch"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:403
 | |
| msgid "Create your merge request"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:404
 | |
| msgid ""
 | |
| "Take a step back and enjoy, we're really grateful you did all of this and"
 | |
| " took the time to contribute!"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:407
 | |
| msgid "Changelog management"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:409
 | |
| msgid ""
 | |
| "To ensure we have extensive and well-structured changelog, any "
 | |
| "significant work such as closing an issue must include a changelog "
 | |
| "fragment. Small changes may include a changelog fragment as well but this"
 | |
| " is not mandatory. If you're not sure about what to do, do not panic, "
 | |
| "open your merge request normally and we'll figure everything during the "
 | |
| "review ;)"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:415
 | |
| msgid ""
 | |
| "Changelog fragments are text files that can contain one or multiple lines"
 | |
| " that describe the changes occurring in a bunch of commits. Those files "
 | |
| "reside in ``changes/changelog.d``."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:420
 | |
| msgid "Content"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:422
 | |
| msgid "A typical fragment looks like that:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:424
 | |
| msgid "Fixed broken audio player on Chrome 42 for ogg files (#567)"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:426
 | |
| msgid ""
 | |
| "If the work fixes one or more issues, the issue number should be included"
 | |
| " at the end of the fragment (``(#567)`` is the issue number in the "
 | |
| "previous example)."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:429
 | |
| msgid ""
 | |
| "If your work is not related to a specific issue, use the merge request "
 | |
| "identifier instead, like this:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:432
 | |
| msgid "Fixed a typo in landing page copy (!342)"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:435
 | |
| msgid "Naming"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:437
 | |
| msgid ""
 | |
| "Fragment files should respect the following naming pattern: "
 | |
| "``changes/changelog.d/<name>.<category>``. Name can be anything "
 | |
| "describing your work, or simply the identifier of the issue number you "
 | |
| "are fixing. Category can be one of:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:441
 | |
| msgid "``feature``: for new features"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:442
 | |
| msgid "``enhancement``: for enhancements on existing features"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:443
 | |
| msgid "``bugfix``: for bugfixes"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:444
 | |
| msgid "``doc``: for documentation"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:445
 | |
| msgid "``i18n``: for internationalization-related work"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:446
 | |
| msgid "``misc``: for anything else"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:449
 | |
| msgid "Shortcuts"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:451
 | |
| msgid ""
 | |
| "Here is a shortcut you can use/adapt to easily create new fragments from "
 | |
| "command-line:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:460
 | |
| msgid ""
 | |
| "You can of course create fragments by hand in your text editor, or from "
 | |
| "Gitlab's interface as well."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:464
 | |
| msgid "Internationalization"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:466
 | |
| msgid ""
 | |
| "We're using https://github.com/Polyconseil/vue-gettext to manage i18n in "
 | |
| "the project."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:468
 | |
| msgid ""
 | |
| "When working on the front-end, any end-user string should be marked as a "
 | |
| "translatable string, with the proper context, as described below."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:472
 | |
| msgid "Translations in HTML"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:474
 | |
| msgid "Translations in HTML use the ``<translate>`` tag::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:498
 | |
| msgid ""
 | |
| "Anything between the `<translate>` and `</translate>` delimiters will be "
 | |
| "considered as a translatable string. You can use variables in the "
 | |
| "translated string via the ``:translate-params=\"{var: 'value'}\"`` "
 | |
| "directive, and reference them like this: ``val value is %{ value }``."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:502
 | |
| msgid ""
 | |
| "For pluralization, you need to use ``translate-params`` in conjunction "
 | |
| "with ``translate-plural`` and ``translate-n``:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:504
 | |
| msgid ""
 | |
| "``translate-params`` should contain the variable you're using for "
 | |
| "pluralization (which is usually shown to the user)"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:505
 | |
| msgid "``translate-n`` should match the same variable"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:506
 | |
| msgid ""
 | |
| "The ``<translate>`` delimiters contain the non-pluralized version of your"
 | |
| " string"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:507
 | |
| msgid ""
 | |
| "The ``translate-plural`` directive contains the pluralized version of "
 | |
| "your string"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:511
 | |
| msgid "Translations in javascript"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:513
 | |
| msgid ""
 | |
| "Translations in javascript work by calling the ``this.$*gettext`` "
 | |
| "functions::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:528
 | |
| msgid ""
 | |
| "The first argument of the ``$pgettext`` and ``$npgettext`` functions is "
 | |
| "the string context."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:531
 | |
| msgid "Contextualization"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:533
 | |
| msgid ""
 | |
| "Translation contexts provided via the ``translate-context`` directive and"
 | |
| " the ``$pgettext`` and ``$npgettext`` are never shown to end users but "
 | |
| "visible by Funkwhale translators. They help translators where and how the"
 | |
| " strings are used, especially with short or ambiguous strings, like "
 | |
| "``May``, which can refer a month or a verb."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:537
 | |
| msgid ""
 | |
| "While we could in theory use free form context, like ``This string is "
 | |
| "inside a button, in the main page, and is a call to action``, Funkwhale "
 | |
| "use a hierarchical structure to write contexts and keep them short and "
 | |
| "consistents accross the app. The previous context, rewritten correctly "
 | |
| "would be: ``Content/Home/Button/Call to action``."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:541
 | |
| msgid "This hierarchical structure is made of several parts:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:550
 | |
| msgid ""
 | |
| "The location part, which is required and refers to the big blocks found "
 | |
| "in Funkwhale UI where the translated string is displayed:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:544
 | |
| msgid "``Content``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:545
 | |
| msgid "``Footer``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:546
 | |
| msgid "``Head``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:547 ../../../CONTRIBUTING.rst:591
 | |
| msgid "``Menu``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:548
 | |
| msgid "``Popup``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:549
 | |
| msgid "``Sidebar``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:550
 | |
| msgid "``*`` for strings that are not tied to a specific location"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:573
 | |
| msgid ""
 | |
| "The feature part, which is required, and refers to the feature associated"
 | |
| " with the translated string:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:553
 | |
| msgid "``About``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:554
 | |
| msgid "``Admin``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:555
 | |
| msgid "``Album``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:556
 | |
| msgid "``Artist``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:557
 | |
| msgid "``Embed``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:558
 | |
| msgid "``Home``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:559
 | |
| msgid "``Login``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:560
 | |
| msgid "``Library``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:561
 | |
| msgid "``Moderation``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:562
 | |
| msgid "``Player``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:563
 | |
| msgid "``Playlist``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:564
 | |
| msgid "``Profile``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:565
 | |
| msgid "``Favorites``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:566
 | |
| msgid "``Notifications``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:567
 | |
| msgid "``Radio``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:568
 | |
| msgid "``Search``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:569
 | |
| msgid "``Settings``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:570
 | |
| msgid "``Signup``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:571
 | |
| msgid "``Track``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:572
 | |
| msgid "``Queue``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:573
 | |
| msgid "``*`` for strings that are not tied to a specific feature"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:599
 | |
| msgid ""
 | |
| "The component part, which is required and refers to the type of element "
 | |
| "that contain the string:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:576
 | |
| msgid "``Button``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:577
 | |
| msgid "``Card``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:578
 | |
| msgid "``Checkbox``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:579
 | |
| msgid "``Dropdown``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:580
 | |
| msgid "``Error message``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:581
 | |
| msgid "``Form``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:582
 | |
| msgid "``Header``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:583
 | |
| msgid "``Help text``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:584
 | |
| msgid "``Hidden text``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:585
 | |
| msgid "``Icon``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:586
 | |
| msgid "``Input``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:587
 | |
| msgid "``Image``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:588
 | |
| msgid "``Label``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:589
 | |
| msgid "``Link``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:590
 | |
| msgid "``List item``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:592
 | |
| msgid "``Message``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:593
 | |
| msgid "``Paragraph``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:594
 | |
| msgid "``Placeholder``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:595
 | |
| msgid "``Tab``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:596
 | |
| msgid "``Table``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:597
 | |
| msgid "``Title``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:598
 | |
| msgid "``Tooltip``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:599
 | |
| msgid "``*`` for strings that are not tied to a specific component"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:607
 | |
| msgid ""
 | |
| "The detail part, which is optional and refers to the contents of the "
 | |
| "string itself, such as:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:602
 | |
| msgid "``Adjective``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:603
 | |
| msgid "``Call to action``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:604
 | |
| msgid "``Noun``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:605
 | |
| msgid "``Short``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:606
 | |
| msgid "``Unit``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:607
 | |
| msgid "``Verb``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:609
 | |
| msgid "Here are a few examples of valid context hierarchies:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:611
 | |
| msgid "``Sidebar/Player/Button``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:612
 | |
| msgid "``Content/Home/Button/Call to action``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:613
 | |
| msgid "``Footer/*/Help text``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:614
 | |
| msgid "``*/*/*/Verb, Short``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:615
 | |
| msgid "``Popup/Playlist/Button``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:616
 | |
| msgid "``Content/Admin/Table.Label/Short, Noun (Value is a date)``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:618
 | |
| msgid ""
 | |
| "It's possible to nest multiple component parts to reach a higher level of"
 | |
| " detail. The component parts are then separated by a dot:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:620
 | |
| msgid "``Sidebar/Queue/Tab.Title``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:621
 | |
| msgid "``Content/*/Button.Title``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:622
 | |
| msgid "``Content/*/Table.Header``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:623
 | |
| msgid "``Footer/*/List item.Link``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:624
 | |
| msgid "``Content/*/Form.Help text``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:627
 | |
| msgid "Collecting translatable strings"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:629
 | |
| msgid ""
 | |
| "If you want to ensure your translatable strings are correctly marked for "
 | |
| "translation, you can try to extract them."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:632
 | |
| msgid ""
 | |
| "Extraction is done by calling ``yarn run i18n-extract``, which will pull "
 | |
| "all the strings from source files and put them in a PO files."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:635
 | |
| msgid ""
 | |
| "You can then inspect the PO files to ensure everything is fine (but don't"
 | |
| " commit them, it's not needed)."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:638
 | |
| msgid "Contributing to the API"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:641
 | |
| msgid "Project structure"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:655
 | |
| msgid ""
 | |
| "Unless trivial, API contributions must include unittests to ensure your "
 | |
| "fix or feature is working as expected and won't break in the future"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:659 ../../../CONTRIBUTING.rst:817
 | |
| msgid "Running tests"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:661
 | |
| msgid "To run the pytest test suite, use the following command::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:665
 | |
| msgid ""
 | |
| "This is regular pytest, so you can use any arguments/options that pytest "
 | |
| "usually accept::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:675
 | |
| msgid "Writing tests"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:677
 | |
| msgid ""
 | |
| "Although teaching you how to write unit tests is outside of the scope of "
 | |
| "this document, you'll find below a collection of tips, snippets and "
 | |
| "resources you can use if you want to learn on that subject."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:681
 | |
| msgid "Useful links:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:683
 | |
| msgid ""
 | |
| "`A quick introduction to unit test writing with pytest "
 | |
| "<https://semaphoreci.com/community/tutorials/testing-python-applications-"
 | |
| "with-pytest>`_"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:684
 | |
| msgid ""
 | |
| "`A complete guide to Test-Driven Development (although not using Pytest) "
 | |
| "<https://www.obeythetestinggoat.com/>`_"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:685
 | |
| msgid ""
 | |
| "`pytest <https://docs.pytest.org/en/latest/>`_: documentation of our "
 | |
| "testing engine and runner"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:686
 | |
| msgid ""
 | |
| "`pytest-mock <https://pypi.org/project/pytest-mock/>`_: project page of "
 | |
| "our mocking engine"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:687
 | |
| msgid ""
 | |
| "`factory-boy <http://factoryboy.readthedocs.io/>`_: documentation of "
 | |
| "factory-boy, which we use to easily generate fake objects and data"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:689
 | |
| msgid "Recommendations:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:691
 | |
| msgid ""
 | |
| "Test files must target a module and mimic ``funkwhale_api`` directory "
 | |
| "structure: if you're writing tests for ``funkwhale_api/myapp/views.py``, "
 | |
| "you should put thoses tests in ``tests/myapp/test_views.py``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:692
 | |
| msgid ""
 | |
| "Tests should be small and test one thing. If you need to test multiple "
 | |
| "things, write multiple tests."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:694
 | |
| msgid ""
 | |
| "We provide a lot of utils and fixtures to make the process of writing "
 | |
| "tests as painless as possible. You'll find some usage examples below."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:697
 | |
| msgid "Use factories to create arbitrary objects:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:732
 | |
| msgid ""
 | |
| "We offer factories for almost if not all models. Factories are located in"
 | |
| " a ``factories.py`` file inside each app."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:735
 | |
| msgid ""
 | |
| "Mocking: mocking is the process of faking some logic in our code. This is"
 | |
| " useful when testing components that depend on each other:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:790
 | |
| msgid ""
 | |
| "Views: you can find some readable views tests in file: "
 | |
| "``api/tests/users/test_views.py``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:794
 | |
| msgid ""
 | |
| "A complete list of available-fixtures is available by running ``docker-"
 | |
| "compose -f dev.yml run --rm api pytest --fixtures``"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:799
 | |
| msgid "Contributing to the front-end"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:802
 | |
| msgid "Styles and themes"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:804
 | |
| msgid ""
 | |
| "Our UI framework is Fomantic UI (https://fomantic-ui.com/), and "
 | |
| "Funkwhale's custom styles are written in SCSS. All the styles are "
 | |
| "configured in ``front/src/styles/_main.scss``, including imporing of "
 | |
| "Fomantic UI styles and components."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:807
 | |
| msgid ""
 | |
| "We're applying several changes on top of the Fomantic CSS files, before "
 | |
| "they are imported:"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:809
 | |
| msgid ""
 | |
| "Many hardcoded color values are replaced by CSS vars: e.g ``color: "
 | |
| "orange`` is replaced by ``color: var(--vibrant-color)``. This makes "
 | |
| "theming way easier."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:810
 | |
| msgid ""
 | |
| "Unused components variations and icons are stripped from the source "
 | |
| "files, in order to reduce the final size of our CSS files"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:812
 | |
| msgid ""
 | |
| "This changes are applied automatically when running ``yarn install``, "
 | |
| "through a ``postinstall`` hook. Internally, ``front/scripts/fix-fomantic-"
 | |
| "css.py`` is called and handle both kind of modifications. Please refer to"
 | |
| " this script if you need to use new icons to the project, or restore some"
 | |
| " components variations that were stripped in order to use them."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:819
 | |
| msgid "To run the front-end test suite, use the following command::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:823
 | |
| msgid ""
 | |
| "We also support a \"watch and test\" mode were we continually relaunch "
 | |
| "tests when changes are recorded on the file system::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:828
 | |
| msgid "The latter is especially useful when you are debugging failing tests."
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:832
 | |
| msgid "The front-end test suite coverage is still pretty low"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:836
 | |
| msgid "Making a release"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:838
 | |
| msgid "To make a new 3.4 release::"
 | |
| msgstr ""
 | |
| 
 | |
| #: ../../../CONTRIBUTING.rst:877
 | |
| msgid ""
 | |
| "Then, visit https://dev.funkwhale.audio/funkwhale/funkwhale/-/tags, copy-"
 | |
| "paste the changelog on the corresponding tag, and announce the good news "
 | |
| ";)"
 | |
| msgstr ""
 |