From d6655101dc7057274d328cf811bb975d48635048 Mon Sep 17 00:00:00 2001 From: Olga Bulat Date: Thu, 8 Apr 2021 22:21:29 +0300 Subject: [PATCH 01/11] Set up i18n --- nuxt.config.js | 13 +- package-lock.json | 63 ++++ package.json | 1 + src/components/FooterSection.vue | 1 + src/components/LocaleSelector.vue | 148 ++++++++-- src/locales/ru.json | 473 ++++++++++++++++++++++++++++++ 6 files changed, 674 insertions(+), 25 deletions(-) create mode 100644 src/locales/ru.json diff --git a/nuxt.config.js b/nuxt.config.js index 58cbfafe4e..ad52ed3d06 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -116,7 +116,6 @@ export default { server: { port: process.env.PORT || 8443 }, components: true, plugins: [ - '~/plugins/i18n.js', { src: '~/plugins/ab-test-init.js', mode: 'client' }, { src: '~plugins/ga.js', mode: 'client' }, ], @@ -127,7 +126,17 @@ export default { head, env, buildModules: ['@nuxtjs/svg', '@nuxtjs/eslint-module'], - modules: ['@nuxtjs/sentry', '@nuxtjs/sitemap', 'nuxt-ssr-cache'], + modules: ['@nuxtjs/sentry', '@nuxtjs/sitemap', 'nuxt-ssr-cache', 'nuxt-i18n'], + i18n: { + locales: [ + { code: 'en', name: 'English', file: 'en.json' }, + { code: 'fr', name: 'French', file: 'fr.json' }, + { code: 'ru', name: 'Russian', file: 'ru.json' }, + ], + lazy: true, + langDir: 'locales', + defaultLocale: 'en', + }, sentry: { dsn: process.env.SENTRY_DSN || diff --git a/package-lock.json b/package-lock.json index 1cfde96002..dbf8abb495 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1277,6 +1277,29 @@ } } }, + "@intlify/shared": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.1.2.tgz", + "integrity": "sha512-95v9lPxh6k3/lE0urU/wdAck7dXQ/O0Pk7WwZPOIXqPFVN88ZwRsmlFr7iwtIIsr4aYgYJh8I2Pp2BzCNAFYmw==" + }, + "@intlify/vue-i18n-extensions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-extensions/-/vue-i18n-extensions-1.0.2.tgz", + "integrity": "sha512-rnfA0ScyBXyp9xsSD4EAMGeOh1yv/AE7fhqdAdSOr5X8N39azz257umfRtzNT9sHXAKSSzpCVhIbMAkp5c/gjQ==", + "requires": { + "@babel/parser": "^7.9.6" + } + }, + "@intlify/vue-i18n-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-loader/-/vue-i18n-loader-1.1.0.tgz", + "integrity": "sha512-9LXiztMtYKTE8t/hRwwGUp+ofrwU0sxLQLzFEOZ38zvn0DonUIQmZUj1cfz5p1Lu8BllxKbCrn6HnsRJ+LYA6g==", + "requires": { + "@intlify/shared": "^9.0.0", + "js-yaml": "^3.13.1", + "json5": "^2.1.1" + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -6031,6 +6054,11 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "devalue": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-2.0.1.tgz", + "integrity": "sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q==" + }, "diff-sequences": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", @@ -11073,6 +11101,11 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, "lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -12028,6 +12061,31 @@ "@nuxt/webpack": "2.14.7" } }, + "nuxt-i18n": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/nuxt-i18n/-/nuxt-i18n-6.23.0.tgz", + "integrity": "sha512-f/jVMYWdbHXFQGcoigMm5dUxg1qDz3X/ObqwaZXmaQj1zP/uHwlvMRJZFJpKywi7wMZJfJgTK3WONy0o25zw8w==", + "requires": { + "@babel/parser": "^7.5.5", + "@babel/traverse": "^7.5.5", + "@intlify/vue-i18n-extensions": "^1.0.1", + "@intlify/vue-i18n-loader": "^1.0.0", + "cookie": "^0.4.0", + "devalue": "^2.0.1", + "js-cookie": "^2.2.1", + "klona": "^2.0.4", + "lodash.merge": "^4.6.2", + "ufo": "^0.6.7", + "vue-i18n": "^8.23.0" + }, + "dependencies": { + "vue-i18n": { + "version": "8.24.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.24.2.tgz", + "integrity": "sha512-+TkAPBQw4Cp2bQrSPtPNkhET7XcWYjjDt1UjWYQs+xbT41q5OAl1I3IZyhg0drjn1nlC1K0f8sLVB/nshUcF1Q==" + } + } + }, "nuxt-ssr-cache": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/nuxt-ssr-cache/-/nuxt-ssr-cache-1.5.2.tgz", @@ -16121,6 +16179,11 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==" }, + "ufo": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-0.6.11.tgz", + "integrity": "sha512-Yu7TJThwlr23peOkX/+hm6LfkyBs+eDWV880468PTrjKBKjjsNWFFwIuOqDfmXngRo9TZ4+twFYueRH0OLl0Gw==" + }, "uglify-js": { "version": "3.11.2", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.2.tgz", diff --git a/package.json b/package.json index 4e3c65f6d2..589315386f 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "lodash.sortby": "^4.7.0", "node-sass": "^4.14.1", "nuxt": "^2.14.7", + "nuxt-i18n": "^6.23.0", "nuxt-ssr-cache": "^1.5.2", "patch-package": "^6.2.2", "sass-loader": "^10.0.1", diff --git a/src/components/FooterSection.vue b/src/components/FooterSection.vue index 0d24cf42ed..1c29a12775 100644 --- a/src/components/FooterSection.vue +++ b/src/components/FooterSection.vue @@ -54,6 +54,7 @@
+
+ From 515739ed7941d1c07660a746970d95888f1b9c45 Mon Sep 17 00:00:00 2001 From: Olga Bulat Date: Sun, 11 Apr 2021 15:13:52 +0300 Subject: [PATCH 04/11] Add missing strings --- src/locales/en.json | 32 ++++++++--- src/locales/fr.json | 131 ++++++++++++++++++++++++++++++++++++++++++-- src/locales/ru.json | 98 +++++++++++++++++++-------------- 3 files changed, 204 insertions(+), 57 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index ad9e97dc77..3e8142b7b4 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -126,7 +126,11 @@ "where": "Where does the content on CC Search come from?", "content": "There is openly licensed content hosted on millions of domains across the breadth of the internet. Our team systematically identifies providers hosting CC-licensed content. If it’s a good fit, we index that content and make it discoverable through CC Search.", "provider": "Some providers have multiple different groupings of content within them. {flickr} has sources ranging from NASA to personal photography. The {smithsonian} comprises a dozen, diverse collections. Wikimedia Commons runs the gamut in terms of content, and is used by several Galleries, Libraries, Archives, and Museums highlighting some or all of their digitized collections.", - "europeana": "CC Search is especially grateful for the work of {link}, an organization that works to digitize and make discoverable cultural heritage works across Europe. CC Search is able to index hundreds of valuable sources, through a single integration with the {link-api}." + "europeana": "CC Search is especially grateful for the work of {link}, an organization that works to digitize and make discoverable cultural heritage works across Europe. CC Search is able to index hundreds of valuable sources, through a single integration with the {link-api}.", + "europeana-link": "Europeana", + "europeana-api": "Europeana API", + "smithsonian": "Smithsonian Institute", + "flickr": "Flickr" }, "new-content": { "next": "How do we decide what sources to add next?", @@ -141,9 +145,11 @@ "meta-search-page": { "title": "Meta Search", "intro": "CC Search is built on top of a catalog that indexes CC-licensed and public domain content from selected sources. Learn more about our {link}.", + "link": "sources", "license": "The internet is a big place! There are plenty of search portals and collections, hosting CC-licensed and public domain content, which we aren’t able to index or surface results from within the CC Search interface. These are important sources of CC-licensed and public domain content, and we want to make sure that you are able to find the best openly licensed materials possible, regardless of where they are located.", "content": "What content types can I search for using the Meta Search feature?", "content-types": "Meta Search on CC Search currently supports image, audio, and video search on external sites.", + "use": " Use ", "images": { "title": "How does the Meta Search feature work for Images?", "content": "CC Search supports built-in image search. When you enter a query on the CC Search homepage, a page of results will be displayed. Scrolling to the bottom of the page, you have two choices:", @@ -158,13 +164,16 @@ }, "new": { "title": "Can I suggest new sources for Meta Search?", - "content": "Yes, please! Create an {issue} in our GitHub repository or send us an {email} and tell us about the new sources you’d like to see included." + "content": "Yes, please! Create an {issue} in our GitHub repository or send us an {email} and tell us about the new sources you’d like to see included.", + "issue": "issue", + "email": "email" }, "why": { "title": "Why did you build this?", "content": "For many years, CC has offered its users a dedicated search portal for searching platforms that have CC licensing filters built in. These platforms included Europeana, Google Images, Flickr, Jamendo, Open Clip Art Library, SpinXpress, Wikimedia Commons, YouTube, ccMixter, and SoundCloud. The search experience looked like this:", "new": "For users of the legacy CC Meta Search site, the Meta Search feature on CC Search will look familiar. The goal was to ensure that the functionality is not lost, but is updated and embedded within our new search engine for openly licensed content. In addition, the Meta Search feature builds on this functionality, allowing us to quickly add new sources to Meta Search as we discover them, and support new content types in the future, as we expand.", - "feedback": "We hope you enjoy, and if you have suggestions for improvement, leave us {feedback}" + "feedback": "We hope you enjoy, and if you have suggestions for improvement, leave us {feedback}.", + "feedback-link": "feedback" } }, "search-guide": { @@ -207,7 +216,7 @@ }, "feedback": { "title": "Feedback", - "description": "Thank you for using CC Search! We welcome your ideas for improving the tool below. To provide regular user feedback, join the {channel} channel on {slack}.", + "description": "Thank you for using CC Search! We welcome your ideas for improving the tool below.", "improve": "Help us Improve", "bug": "Report a Bug", "loading": "Loading...", @@ -262,6 +271,7 @@ "collection-size": "Collection size: {count} images" }, "not-found": "Page Not Found", + "error-occurred": "An error occurred", "search-tab": { "image": "Image", "audio": "Audio", @@ -334,6 +344,8 @@ "show": "Show results" }, "browse-page": { + "result-count": "{count} images", + "result-count-more": "Over {count} images", "no-more": "No more images :(", "load": "Load more results", "error": "Error fetching images:", @@ -345,7 +357,7 @@ "feedback": "Thank you for the feedback!" }, "search-form": { - "placeholder": "Search all images", + "placeholder": "Search all {type}", "collection-placeholder": "Search this collection", "button": "Search" }, @@ -405,10 +417,11 @@ "title": "Information", "type": "Type:", "provider": "Provider:", - "dimensions": "Dimensions", - "source": "Source", + "dimensions": "Dimensions:", + "source": "Source:", "license": "License", - "tags": "Tags" + "tags": "Tags", + "pixels": "pixels" }, "share": "Share", "survey": { @@ -438,7 +451,8 @@ "content": "You must fill out this {link} to report copyright infringement. No action will be taken until the form is filled out and submitted.", "provider": "We recommend doing the same at the source, {link}.", "thanks": "Thank you for reporting an issue with the results of CC Search!", - "error": "There was an error with the report submission. Please try again." + "error": "There was an error with the report submission. Please try again.", + "link": "DMCA form" } }, "aria": { diff --git a/src/locales/fr.json b/src/locales/fr.json index 58fa0ae42a..453b930431 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -23,9 +23,12 @@ } }, "header": { - "about": "À propos de", + "about": "À propos", + "source": "Sources", "search-guide": "Guide de recherche", + "meta-search": "Meta Search", "feedback": "Retour d'information", + "support": "Support Us", "extension": "Extension", "placeholder": "Rechercher toutes les images", "aria": { @@ -34,6 +37,16 @@ "search": "chercher", "sr-search": "bouton de recherche sr", "extension": "extension" + }, + "licenses": "The Licenses", + "about-tab": "A Propos", + "resources-tab": "Resources", + "api": "API", + "donation-banner": { + "description": "If you donate $5 today, and everyone else does the same, we can keep growing our database of freely reusable content. For you. For all of us.", + "alternative-description": "Only 1% of people reading this will donate. Be one of them and help us sustain CC Search.", + "yes": "Yes, I'll donate now", + "no": "Pas aujourd'huis" } }, "footer": { @@ -43,7 +56,7 @@ }, "navigation": { "contact": "Contact", - "privacy": "Intimité", + "privacy": "Confidentialité", "policies": "Stratégies", "terms": "Termes" }, @@ -101,6 +114,68 @@ "sources": "table des sources" } }, + "sources": { + "title": "Sources", + "detail": "Clicking on a {single-name} allows you to browse and filter items within that source.", + "single-name": "Source", + "providers": { + "source": "Source", + "item": "Total items" + }, + "cc-content": { + "where": "Where does the content on CC Search come from?", + "content": "There is openly licensed content hosted on millions of domains across the breadth of the internet. Our team systematically identifies providers hosting CC-licensed content. If it’s a good fit, we index that content and make it discoverable through CC Search.", + "provider": "Some providers have multiple different groupings of content within them. {flickr} has sources ranging from NASA to personal photography. The {smithsonian} comprises a dozen, diverse collections. Wikimedia Commons runs the gamut in terms of content, and is used by several Galleries, Libraries, Archives, and Museums highlighting some or all of their digitized collections.", + "europeana": "CC Search is especially grateful for the work of {link}, an organization that works to digitize and make discoverable cultural heritage works across Europe. CC Search is able to index hundreds of valuable sources, through a single integration with the {link-api}.", + "europeana-link": "Europeana", + "europeana-api": "Europeana API", + "smithsonian": "Smithsonian Institute", + "flickr": "Flickr" + }, + "new-content": { + "next": "How do we decide what sources to add next?", + "integrate": "We have a never ending list of possible sources to research prior to integration. We ask ourselves questions like:", + "impact": " What is the impact or importance of this source to our users? If it exists within a provider like Wikimedia Commons, is it valuable for our users to be able to filter by this source directly?", + "reuse": "Is licensing and attribution information clearly displayed to enable confident reuse?", + "total-items": "How many new total items or new types of items can we bring to our users through this integration? Some sources are direct integrations, while others may be a source within a source." + }, + "suggestions": "We appreciate suggestions for new sources from our community of users.", + "issue-button": "Suggest a new source" + }, + "meta-search-page": { + "title": "Meta Search", + "intro": "CC Search is built on top of a catalog that indexes CC-licensed and public domain content from selected sources. Learn more about our {link}.", + "link": "sources", + "license": "The internet is a big place! There are plenty of search portals and collections, hosting CC-licensed and public domain content, which we aren’t able to index or surface results from within the CC Search interface. These are important sources of CC-licensed and public domain content, and we want to make sure that you are able to find the best openly licensed materials possible, regardless of where they are located.", + "content": "What content types can I search for using the Meta Search feature?", + "content-types": "Meta Search on CC Search currently supports image, audio, and video search on external sites.", + "use": " Use ", + "images": { + "title": "How does the Meta Search feature work for Images?", + "content": "CC Search supports built-in image search. When you enter a query on the CC Search homepage, a page of results will be displayed. Scrolling to the bottom of the page, you have two choices:", + "continue": "Load more results, and continue browsing in CC Search.", + "not-finding": "Click on the link that says “Not finding what you need?” below the image results.", + "info": "When you click on “Not finding what you need?” a modal will load with other sources of CC-licensed and public domain content. Your search query will be preloaded, and if supported, you can select a {use} filter to proactively filter your results. Click on the button for the external source you’d like to search, and your results will open in a new tab." + }, + "audio-video": { + "title": "How does the Meta Search feature work for Audio and Video?", + "content": "CC Search does not yet support built-in audio and video search. For Audio and Video, simply click on the appropriate tab, and you’ll see what sources you can find CC-licensed content on.", + "filter": "The Filters bar on the left includes the {use} filter, which may be supported by some meta search sources. Apply these before clicking on the button for the external source you’d like to search." + }, + "new": { + "title": "Can I suggest new sources for Meta Search?", + "content": "Yes, please! Create an {issue} in our GitHub repository or send us an {email} and tell us about the new sources you’d like to see included.", + "issue": "issue", + "email": "email" + }, + "why": { + "title": "Why did you build this?", + "content": "For many years, CC has offered its users a dedicated search portal for searching platforms that have CC licensing filters built in. These platforms included Europeana, Google Images, Flickr, Jamendo, Open Clip Art Library, SpinXpress, Wikimedia Commons, YouTube, ccMixter, and SoundCloud. The search experience looked like this:", + "new": "For users of the legacy CC Meta Search site, the Meta Search feature on CC Search will look familiar. The goal was to ensure that the functionality is not lost, but is updated and embedded within our new search engine for openly licensed content. In addition, the Meta Search feature builds on this functionality, allowing us to quickly add new sources to Meta Search as we discover them, and support new content types in the future, as we expand.", + "feedback": "We hope you enjoy, and if you have suggestions for improvement, leave us {feedback}.", + "feedback-link": "feedback" + } + }, "search-guide": { "title": "Guide de syntaxe de recherche CC", "intro": "Lorsque vous effectuez une recherche, vous pouvez entrer des symboles ou des mots spéciaux dans votre terme de recherche pour rendre vos résultats de recherche plus précis.", @@ -151,6 +226,44 @@ "report-bug": "signaler un formulaire de bogue" } }, + "support": { + "title": "Support us", + "open": "The search engine for the open movement", + "cc": "CC Search is the leading search engine that accurately and reliably indexes works that are known to be openly licensed or in the public domain.", + "quote": "{joy} by {writer}.. {cc}", + "inclusive": "For two decades, Creative Commons, a 501(c)(3) publicly funded nonprofit, has led the movement to increase access to cultural, educational, and creative works in order to help fill knowledge gaps to promote a more equitable, innovative world. As the United Nations Sustainable Development Goals (UNSDG) for Quality Education make clear: “access to inclusive education can help equip locals with the tools required to develop innovative solutions to the world’s greatest problems.”", + "work": "The {license} and {public-domain} tools now serve as the licensing infrastructure of the open web. They are utilized by cultural institutions, artists, universities, governments, and more to unlock over 2 billion works globally; from {photograph} of French feminist Caroline Rémy to {guide} on creating more accessible digital documents. Thanks to our collaborative efforts with the open community and these institutions, every individual may have digital access to valuable knowledge and priceless works—like the 2.8 million images and nearly two centuries of data released into the public domain by the Smithsonian in early 2020 using CC0, the Creative Commons public domain dedication tool.", + "access": "With this underlying infrastructure in place, which continues to support a growing collection of open access materials, we are tackling the problems of discoverability and accessibility on the web. With CC Search, we are making important collections of openly licensed works easy to find and reuse, regardless of language and location, from a single starting point.", + "free": "If you find it on CC Search, you’re free to reuse it.", + "public-good": "Like all CC tools, CC Search is a {public-good}, allowing anyone with an internet connection the ability to visit all corners of the world, and find material that they can learn from, reuse, and share freely.", + "button": { + "donate": "Donate Now", + "sponsor": "Sponsor us on GitHub" + }, + "launch": { + "title": "CC Search launched on April 30th, 2019.", + "first": "During our first year:", + "served": "We have served over 2.8 million users.", + "host": "Our site hosted visitors from over 230 countries and territories.", + "users": "Over 500 million+ CC-licensed images were made discoverable in a single place.", + "visitors": "1 in 3 visitors to CC Search is an educator, and 1 in 4 visitors is a student.", + "education": "These users are engaged in the use, creation, and sharing of educational materials, benefiting from easy access to openly licensed work." + }, + "future": { + "title": "What will the future bring for CC Search?", + "more": "We’re always listening to our community to understand the greatest needs and highest impact features we can develop, alongside watching for newly open digitized collections to help share. We are working hard to include:", + "culture": "Storied cultural collections from across the world.", + "audio": "Audio, including openly licensed music, sound effects, pronunciations, lectures, podcasts, and audiobooks.", + "video": "Video, including openly licensed material for education and entertainment purposes.", + "text": "Text, including openly licensed books, poetry, manuscripts, and more.", + "internalize": "By the end of 2020, we will have internationalization infrastructure in place.", + "translate": "This will allow our volunteer community of translators to help make CC Search available in additional languages!", + "accessibility": "Accessibility features.", + "smarter": "Smarter search, through additional filters and algorithm improvements.", + "support": "Support this next, exciting chapter of CC Search." + }, + "grateful": "We are grateful for the support of Arcadia, Amazon Web Services, Coil, Mozilla, and countless community donors in launching and growing this ambitious project. Thank you for helping us break down barriers to knowledge and culture!" + }, "collections": { "title": "Parcourir les collections", "museum": "Collections du musée", @@ -158,6 +271,7 @@ "collection-size": "Taille de la collection: {count} images" }, "not-found": "Page non trouvée", + "error-occurred": "An error occurred", "filters": { "title": "Filtres", "filter-by": "Filtrer par", @@ -225,6 +339,8 @@ "show": "Montrer les résultats" }, "browse-page": { + "result-count": "{count} images", + "result-count-more": "Plus de {count} images", "no-more": "Plus d'images :(", "load": "Charger plus de résultats", "error": "Erreur lors de la récupération des images:", @@ -272,6 +388,7 @@ "reuse": { "title": "Réutilisation", "license-header": "Licence", + "tool-header": "Public Domain", "attribution": { "main": "Cette image était {link} marquée d'une", "license": "licence." @@ -295,10 +412,11 @@ "title": "Information", "type": "Type:", "provider": "Fournisseur:", - "dimensions": "Dimensions", - "source": "La source", + "dimensions": "Dimensions:", + "source": "La source:", "license": "Licence", - "tags": "Mots clés" + "tags": "Mots clés", + "pixels": "pixels" }, "share": "Partager", "survey": { @@ -328,7 +446,8 @@ "content": "Vous devez remplir ce {link} pour signaler une violation du droit d'auteur. Aucune action ne sera entreprise tant que le formulaire n'aura pas été rempli et soumis.", "provider": "Nous vous recommandons de faire de même à la source, {link}.", "thanks": "Merci d'avoir signalé un problème avec les résultats de CC Search!", - "error": "Une erreur s'est produite lors de la soumission du rapport. Veuillez réessayer." + "error": "Une erreur s'est produite lors de la soumission du rapport. Veuillez réessayer.", + "link": "DMCA form" } }, "aria": { diff --git a/src/locales/ru.json b/src/locales/ru.json index d4565f4491..a9ebb31a54 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1,36 +1,36 @@ { "hero": { - "title": "Поиск контента, который можно использовать", + "title": "Поиск контента для использования", "subtitle": "Просмотр более 500 миллионов изображений, которые можно использовать", "search": { "placeholder": "Поиск по всему контенту", - "button": "Поиск" + "button": "Найти" }, "caption": { - "content": "All our content is under Creative Commons licenses or in the public domain. {link} about CC licenses and tools.", - "link": "Learn more" + "content": "Весь наш контент под лицензиями Creative Commons или общественное достояние. {link} о лицензиях и инструментах CC.", + "link": "Узнать больше" }, "license-filter": { - "label": "I want something I can" + "label": "Я хочу найти то, что можно" }, "locale": { - "label": "Languages available", - "icon": "locale" + "label": "Языки", + "icon": "локаль" }, "aria": { - "search": "search", - "caption": "about cc licenses" + "search": "поиск", + "caption": "о лицензиях cc" } }, "header": { - "about": "Our Story", - "source": "Sources", - "search-guide": "Search Guide", - "meta-search": "Meta Search", - "feedback": "Feedback", - "support": "Support Us", + "about": "Наша История", + "source": "Источники", + "search-guide": "Руководство по Поиску", + "meta-search": "Мета Поиск", + "feedback": "Обратная связь", + "support": "Поддержите нас", "extension": "Extension", - "placeholder": "Search all content", + "placeholder": "Поиск по всему контенту", "aria": { "primary": "primary", "menu": "menu", @@ -39,13 +39,13 @@ "extension": "extension" }, "licenses": "The Licenses", - "about-tab": "About", - "resources-tab": "Resources", + "about-tab": "О нас", + "resources-tab": "Ресурсы", "api": "API", "donation-banner": { "description": "If you donate $5 today, and everyone else does the same, we can keep growing our database of freely reusable content. For you. For all of us.", "alternative-description": "Only 1% of people reading this will donate. Be one of them and help us sustain CC Search.", - "yes": "Yes, I'll donate now", + "yes": "Да, я отправлю сегодня", "no": "Не сегодня" } }, @@ -78,7 +78,7 @@ } }, "about": { - "title": "О Нас", + "title": "About CC Search", "description": { "content": "CC Search is a tool that allows openly licensed and public domain works to be discovered and used by everyone. Creative Commons, the nonprofit behind CC Search, is the maker of the {link}, used over 1.4 billion times to help creators share knowledge and creativity online.", "licenses-link": "CC licenses" @@ -126,7 +126,11 @@ "where": "Where does the content on CC Search come from?", "content": "There is openly licensed content hosted on millions of domains across the breadth of the internet. Our team systematically identifies providers hosting CC-licensed content. If it’s a good fit, we index that content and make it discoverable through CC Search.", "provider": "Some providers have multiple different groupings of content within them. {flickr} has sources ranging from NASA to personal photography. The {smithsonian} comprises a dozen, diverse collections. Wikimedia Commons runs the gamut in terms of content, and is used by several Galleries, Libraries, Archives, and Museums highlighting some or all of their digitized collections.", - "europeana": "CC Search is especially grateful for the work of {link}, an organization that works to digitize and make discoverable cultural heritage works across Europe. CC Search is able to index hundreds of valuable sources, through a single integration with the {link-api}." + "europeana": "CC Search is especially grateful for the work of {link}, an organization that works to digitize and make discoverable cultural heritage works across Europe. CC Search is able to index hundreds of valuable sources, through a single integration with the {link-api}.", + "europeana-link": "Europeana", + "europeana-api": "Europeana API", + "smithsonian": "Smithsonian Institute", + "flickr": "Flickr" }, "new-content": { "next": "How do we decide what sources to add next?", @@ -141,9 +145,11 @@ "meta-search-page": { "title": "Meta Search", "intro": "CC Search is built on top of a catalog that indexes CC-licensed and public domain content from selected sources. Learn more about our {link}.", + "link": "sources", "license": "The internet is a big place! There are plenty of search portals and collections, hosting CC-licensed and public domain content, which we aren’t able to index or surface results from within the CC Search interface. These are important sources of CC-licensed and public domain content, and we want to make sure that you are able to find the best openly licensed materials possible, regardless of where they are located.", "content": "What content types can I search for using the Meta Search feature?", "content-types": "Meta Search on CC Search currently supports image, audio, and video search on external sites.", + "use": " Use ", "images": { "title": "How does the Meta Search feature work for Images?", "content": "CC Search supports built-in image search. When you enter a query on the CC Search homepage, a page of results will be displayed. Scrolling to the bottom of the page, you have two choices:", @@ -158,13 +164,16 @@ }, "new": { "title": "Can I suggest new sources for Meta Search?", - "content": "Yes, please! Create an {issue} in our GitHub repository or send us an {email} and tell us about the new sources you’d like to see included." + "content": "Yes, please! Create an {issue} in our GitHub repository or send us an {email} and tell us about the new sources you’d like to see included.", + "issue": "issue", + "email": "email" }, "why": { "title": "Why did you build this?", "content": "For many years, CC has offered its users a dedicated search portal for searching platforms that have CC licensing filters built in. These platforms included Europeana, Google Images, Flickr, Jamendo, Open Clip Art Library, SpinXpress, Wikimedia Commons, YouTube, ccMixter, and SoundCloud. The search experience looked like this:", "new": "For users of the legacy CC Meta Search site, the Meta Search feature on CC Search will look familiar. The goal was to ensure that the functionality is not lost, but is updated and embedded within our new search engine for openly licensed content. In addition, the Meta Search feature builds on this functionality, allowing us to quickly add new sources to Meta Search as we discover them, and support new content types in the future, as we expand.", - "feedback": "We hope you enjoy, and if you have suggestions for improvement, leave us {feedback}" + "feedback": "We hope you enjoy, and if you have suggestions for improvement, leave us {feedback}.", + "feedback-link": "feedback" } }, "search-guide": { @@ -207,7 +216,7 @@ }, "feedback": { "title": "Feedback", - "description": "Thank you for using CC Search! We welcome your ideas for improving the tool below. To provide regular user feedback, join the {channel} channel on {slack}.", + "description": "Thank you for using CC Search! We welcome your ideas for improving the tool below.", "improve": "Help us Improve", "bug": "Report a Bug", "loading": "Loading...", @@ -262,6 +271,7 @@ "collection-size": "Collection size: {count} images" }, "not-found": "Page Not Found", + "error-occurred": "An error occurred", "search-tab": { "image": "Изображения", "audio": "Аудио", @@ -269,7 +279,7 @@ }, "filters": { "title": "Фильтры", - "filter-by": "Filter By", + "filter-by": "Отфильтровать по", "licenses": { "title": "License or Public Domain", "cc0": "CC0", @@ -287,13 +297,13 @@ "modification": "Modify or adapt" }, "providers": { - "title": "Source" + "title": "Источник" }, "categories": { - "title": "Image Type", - "photograph": "Photographs", - "illustration": "Illustrations", - "digitized-artwork": "Digitized Artworks" + "title": "Тип Изображения", + "photograph": "Фотографии", + "illustration": "Иллюстрации", + "digitized-artwork": "Оцифрованные Объекты Искусства" }, "extensions": { "title": "File Type", @@ -328,14 +338,16 @@ } }, "filter-list": { - "filter-by": "Filter results by", - "hide": "Hide filters", - "clear": "Clear filters", - "show": "Show results" + "filter-by": "Отфильтровать результаты по", + "hide": "Спрятать фильтры", + "clear": "Очистить фильтры", + "show": "Показать результаты" }, "browse-page": { + "result-count": "{count} изображений", + "result-count-more": "Более {count} изображений", "no-more": "No more images :(", - "load": "Load more results", + "load": "Загрузить еще", "error": "Error fetching images:", "other-source": "Not finding what you need? Search other sources", "search-rating": { @@ -347,7 +359,7 @@ "search-form": { "placeholder": "Search all images", "collection-placeholder": "Search this collection", - "button": "Найти" + "button": "Search" }, "license-description": { "title": "License CC", @@ -405,10 +417,11 @@ "title": "Information", "type": "Type:", "provider": "Provider:", - "dimensions": "Dimensions", - "source": "Source", + "dimensions": "Dimensions:", + "source": "Source:", "license": "License", - "tags": "Tags" + "tags": "Tags", + "pixels": "pixels" }, "share": "Share", "survey": { @@ -438,7 +451,8 @@ "content": "You must fill out this {link} to report copyright infringement. No action will be taken until the form is filled out and submitted.", "provider": "We recommend doing the same at the source, {link}.", "thanks": "Thank you for reporting an issue with the results of CC Search!", - "error": "There was an error with the report submission. Please try again." + "error": "There was an error with the report submission. Please try again.", + "link": "DMCA form" } }, "aria": { @@ -471,8 +485,8 @@ } }, "form": { - "title": "Мы пока еще не поддерживаем поиск {type}.", - "caption": "Нажмите на источники ниже чтобы искать напрямую в других коллекциях {type} с лицензиями CC.{break}Please note that Use filters are not supported for {filter}." + "title": "CC Search does not yet support built-in {type} search.", + "caption": "Click on a source below to directly search other collections of CC-licensed {type}.{break}Please note that Use filters are not supported for {filter}." } } } From 208946829475f393e3e048b5f6c1cdafc4fd0771 Mon Sep 17 00:00:00 2001 From: Olga Bulat Date: Sun, 11 Apr 2021 15:51:03 +0300 Subject: [PATCH 05/11] Add missing i18n in components, pages and layouts --- src/components/ContentReport/DmcaNotice.vue | 2 +- src/components/ContentReport/DoneMessage.vue | 2 +- src/components/Filters/FilterDisplay.vue | 6 +- src/components/FooterSection.vue | 4 -- src/components/HeroSection.vue | 1 - src/components/ImageDetails/CopyLicense.vue | 2 + src/components/ImageDetails/ImageInfo.vue | 11 +++- src/components/ImageDetails/PhotoDetails.vue | 3 + src/components/LocaleSelector.vue | 16 ++--- src/components/NavSection.vue | 2 + src/components/SearchGridManualLoad.vue | 8 ++- src/components/SearchRating.vue | 1 + src/layouts/error.vue | 2 +- src/pages/about.vue | 5 +- src/pages/feedback.vue | 17 +----- src/pages/meta-search.vue | 18 +++--- src/pages/search-help.vue | 4 +- src/pages/sources.vue | 62 +++++++++++--------- src/pages/support.vue | 2 + 19 files changed, 87 insertions(+), 81 deletions(-) diff --git a/src/components/ContentReport/DmcaNotice.vue b/src/components/ContentReport/DmcaNotice.vue index 694635e311..d9d6e9a6f6 100644 --- a/src/components/ContentReport/DmcaNotice.vue +++ b/src/components/ContentReport/DmcaNotice.vue @@ -11,7 +11,7 @@ :href="dmcaFormUrl" target="_blank" rel="noopener" - >DMCA form{{ $t('photo-details.content-report.dmca.link') }} diff --git a/src/components/ContentReport/DoneMessage.vue b/src/components/ContentReport/DoneMessage.vue index 9d2ae06609..0036b6f562 100644 --- a/src/components/ContentReport/DoneMessage.vue +++ b/src/components/ContentReport/DoneMessage.vue @@ -15,7 +15,7 @@ target="_blank" rel="noopener" >{{ providerName }}. + > diff --git a/src/components/Filters/FilterDisplay.vue b/src/components/Filters/FilterDisplay.vue index 3871206aee..ddbdd280c3 100644 --- a/src/components/Filters/FilterDisplay.vue +++ b/src/components/Filters/FilterDisplay.vue @@ -1,8 +1,8 @@