diff --git a/account/__init__.py b/account/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/account/admin.py b/account/admin.py new file mode 100644 index 0000000000..8c38f3f3da --- /dev/null +++ b/account/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/account/apps.py b/account/apps.py new file mode 100644 index 0000000000..12e91a85a8 --- /dev/null +++ b/account/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + +class AccountsConfig(AppConfig): + name = 'account' # The name of your app + + # def ready(self): + # import account.signal # Import the signals \ No newline at end of file diff --git a/account/migrations/0001_initial.py b/account/migrations/0001_initial.py new file mode 100644 index 0000000000..d13f678745 --- /dev/null +++ b/account/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2024-09-18 12:44 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='UserType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('user_type', models.CharField(choices=[('Monastic', 'Monastic'), ('Teacher', 'Teacher'), ('Student', 'Student'), ('Educated* /Dr / Prof', 'Educated* /Dr / Prof'), ('regular user', 'regular user')], max_length=20)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/account/migrations/__init__.py b/account/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/account/models.py b/account/models.py new file mode 100644 index 0000000000..0d8d93bbd2 --- /dev/null +++ b/account/models.py @@ -0,0 +1,19 @@ +from django.db import models + +from django.contrib.auth.models import User + + +class UserType(models.Model): + USER_TYPE_CHOICES = [ + ('Monastic', 'Monastic'), + ('Teacher', 'Teacher'), + ('Student', 'Student'), + ('Educated* /Dr / Prof', 'Educated* /Dr / Prof'), + ('regular user', 'regular user'), + ] + + user = models.OneToOneField(User, on_delete=models.CASCADE) + user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES) + + def __str__(self): + return f"{self.user.username} - {self.user_type}" \ No newline at end of file diff --git a/account/signal.py b/account/signal.py new file mode 100644 index 0000000000..fc7dd4d9c2 --- /dev/null +++ b/account/signal.py @@ -0,0 +1,17 @@ +# from django.db.models.signals import post_save +# from django.dispatch import receiver +# from django.contrib.auth.models import User +# from .models import UserType + +# # Automatically create a user profile when a new User is created +# @receiver(post_save, sender=User) +# def create_user_profile(sender, instance, created, **kwargs): +# if created: +# print("UserType created for the new user") +# UserType.objects.create(user=instance) + +# # Automatically save the user profile when the User is saved +# @receiver(post_save, sender=User) +# def save_user_profile(sender, instance, **kwargs): +# if hasattr(instance, 'usertype'): # Check if user has an associated UserType +# instance.usertype.save() \ No newline at end of file diff --git a/account/tests.py b/account/tests.py new file mode 100644 index 0000000000..7ce503c2dd --- /dev/null +++ b/account/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/account/views.py b/account/views.py new file mode 100644 index 0000000000..91ea44a218 --- /dev/null +++ b/account/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/reader/views.py b/reader/views.py index 2888563513..f5cbdefb43 100644 --- a/reader/views.py +++ b/reader/views.py @@ -87,6 +87,10 @@ from sefaria.helper.topic import update_topic, update_topic_titles from sefaria.helper.category import update_order_of_category_children, check_term from redis_clear import clear_redis_cache +from django.middleware.csrf import get_token +from django.utils.text import slugify +import random +import string if USE_VARNISH: from sefaria.system.varnish.wrapper import invalidate_ref, invalidate_linked @@ -3984,6 +3988,11 @@ def edit_profile(request): Page for editing a user's profile. """ profile = UserProfile(id=request.user.id) + if not profile.slug: + profile.slug = slugify(request.user.username) or generate_random_slug() + while db.profiles.find_one({"slug": profile.slug, "_id": {"$ne": profile.id}}): + profile.slug = generate_random_slug() + profile.save() sheets = db.sheets.find({"owner": profile.id, "status": "public"}, {"id": 1, "datePublished": 1}).sort( [["datePublished", -1]]) return render_template(request, 'edit_profile.html', None, { @@ -3992,6 +4001,41 @@ def edit_profile(request): 'sheets': sheets, }) +def generate_random_slug(length=8): + """ + Generates a random slug in case the username slug conflicts or is empty. + """ + letters = string.ascii_lowercase + string.digits + return ''.join(random.choice(letters) for i in range(length)) + + +# @login_required +# @ensure_csrf_cookie +# def edit_profile(request): +# """ +# Page for editing a user's profile. +# """ +# # Fetch the user's profile +# profile = UserProfile(id=request.user.id) + +# # Check if slug is empty or None, and generate a default slug if needed +# if not profile.slug: +# # Generate a default slug using the username +# profile.slug = slugify(request.user.username) +# # Save the profile with the new slug +# profile.save() + +# # Get public sheets owned by the user +# sheets = db.sheets.find({"owner": profile.id, "status": "public"}, {"id": 1, "datePublished": 1}).sort( +# [["datePublished", -1]]) + +# # Render the edit profile page +# return render(request, 'edit_profile.html', { +# 'user': request.user, +# 'profile': profile, +# 'sheets': sheets, +# 'csrf_token': get_token(request), # ensure CSRF token is available in the context +# }) @login_required @ensure_csrf_cookie diff --git a/sefaria/forms.py b/sefaria/forms.py index e7e9f64ea7..b204598ec8 100644 --- a/sefaria/forms.py +++ b/sefaria/forms.py @@ -16,6 +16,8 @@ from emailusernames.utils import get_user, user_exists from captcha.fields import ReCaptchaField from captcha.widgets import ReCaptchaV2Checkbox +from account.models import UserType + from sefaria.helper.crm.crm_mediator import CrmMediator from sefaria.settings import DEBUG @@ -49,6 +51,21 @@ class SefariaNewUserForm(EmailUserCreationForm): # subscribe_educator = forms.BooleanField(label=_("I am an educator"), help_text=_("I am an educator"), initial=False, # required=False) + CHOICES = [ + ('', _('Select an option...')), + ('Monastic', _('Monastic')), + ('Teacher', _('Teacher')), + ('Student', _('Student')), + ('Educated* /Dr / Prof', _('Educated* /Dr / Prof')), + ('regular user', _('regular user')), + ] + + # Add the select field + user_type = forms.ChoiceField( + choices=CHOICES, + widget=forms.Select(attrs={'placeholder': _("Select an Option")}) + ) + captcha_lang = "iw" if get_language() == 'he' else "en" captcha = ReCaptchaField( widget=ReCaptchaV2Checkbox( @@ -67,7 +84,7 @@ class Meta: def __init__(self, *args, **kwargs): super(EmailUserCreationForm, self).__init__(*args, **kwargs) del self.fields['password2'] - self.fields.keyOrder = ["email", "first_name", "last_name", "password1", "captcha"] + self.fields.keyOrder = ["email", "first_name", "last_name", "password1", "captcha", ] self.fields.keyOrder.append("subscribe_educator") def clean_email(self): @@ -94,6 +111,10 @@ def save(self, commit=True): if commit: user.save() + + # Save user_type in UserType model + user_type = self.cleaned_data['user_type'] + UserType.objects.create(user=user, user_type=user_type) try: crm_mediator = CrmMediator() @@ -102,6 +123,7 @@ def save(self, commit=True): educator=self.cleaned_data["subscribe_educator"]) except Exception as e: logger.error(f"failed to add user to CRM: {e}") + return user diff --git a/sefaria/model/user_profile.py b/sefaria/model/user_profile.py index 5571c0cfb2..091704a0d1 100644 --- a/sefaria/model/user_profile.py +++ b/sefaria/model/user_profile.py @@ -528,7 +528,7 @@ def errors(self): existing = db.profiles.find_one({"slug": self.slug, "_id": {"$ne": self._id}}) if existing: - return "The Profile URL you have requested is already in use." + return "Profile URL cannot be empty." # URL Fields: website, facebook, linkedin url_val = URLValidator() try: diff --git a/sefaria/settings.py b/sefaria/settings.py index 3b5cb4b553..ece15b11cc 100644 --- a/sefaria/settings.py +++ b/sefaria/settings.py @@ -16,6 +16,12 @@ # system time zone. TIME_ZONE = 'America/Halifax' +# ElasticSearch server +# URL to connect to ES server. +# Set this to https://sefaria.org/api/search to connect to production search. +# If ElasticSearch server has a password use the following format: http(s)://{username}:{password}@{base_url} +SEARCH_URL = "http://localhost:9200" + # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'es' @@ -64,7 +70,9 @@ # URL prefix for static files. # Example: "http://media.lawrence.com/static/" +BASE_DIR = os.path.dirname(os.path.dirname(__file__)) STATIC_URL = '/static/' +STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] # List of finder classes that know how to find static files in # various locations. @@ -156,6 +164,7 @@ 'reader', 'sourcesheets', 'sefaria.gauth', + 'account', 'captcha', 'django.contrib.admin', 'anymail', diff --git a/static/css/s2.css b/static/css/s2.css index 15c951b6fb..50a9a4b4a1 100644 --- a/static/css/s2.css +++ b/static/css/s2.css @@ -5953,8 +5953,8 @@ body .ui-autocomplete.dictionary-toc-autocomplete .ui-menu-item a.ui-state-focus .readerControls .readerTextToc .readerTextTocBox a div { white-space: nowrap; text-overflow: ellipsis; - overflow: hidden; max-width: 100%; + padding: 2px 2px; } .readerControls .readerTextToc .readerTextVersion { diff --git a/static/css/static.css b/static/css/static.css index d21c604061..dec0b40dc6 100644 --- a/static/css/static.css +++ b/static/css/static.css @@ -554,6 +554,14 @@ width: 100%; box-sizing: border-box; } +.registrationContent select option { + padding: 12px 20px; + height: initial; + margin: 1% 0px; + cursor: pointer; + width: 100%; + box-sizing: border-box; +} .registrationContent input::placeholder { /* eventual spec? */ font-family: "Heebo", "Roboto", "Helvetica Neue", "Helvetica", sans-serif; } diff --git a/static/icons/manifest.json b/static/icons/manifest.json index 2c54899608..bef90aa87a 100644 --- a/static/icons/manifest.json +++ b/static/icons/manifest.json @@ -1,5 +1,5 @@ { - "name": "Sefaria Web", + "name": "Pecha Web", "icons": [ { "src": "/favicon-pecha.png?v=xQzLlLp7oR", diff --git a/static/js/AboutBox.jsx b/static/js/AboutBox.jsx index 0c16669150..608df7484c 100644 --- a/static/js/AboutBox.jsx +++ b/static/js/AboutBox.jsx @@ -89,7 +89,7 @@ class AboutBox extends Component { - ) + ) } return
{detailSection}
; } @@ -102,7 +102,7 @@ class AboutBox extends Component { const no_source_versions = multiple_translations || translationVersions?.length === 1 && !sourceVersion; const sourceVersionSectionTitle = {en: Sefaria._("text.current_version"), he:Sefaria._("text.current_version")}; const translationVersionsSectionTitle = multiple_translations ? {en: Sefaria._("text.current_translation"), he:Sefaria._("text.current_translation")} : {en: Sefaria._("text.current_translation"), he: Sefaria._("text.current_translation")}; - const alternateVersionsSectionTitle = no_source_versions ? {en: Sefaria._("source_versions"), he: Sefaria._("source_versions")} : {en: Sefaria._("alt_source_versions"), he: Sefaria._("alt_source_versions")} + const alternateVersionsSectionTitle = no_source_versions ? {en: Sefaria._("text.version.source_versions"), he: Sefaria._("text.version.source_versions")} : {en: Sefaria._("text.version.alt_source_versions"), he: Sefaria._("text.version.alt_source_versions")} let detailSection = null; if (d) { diff --git a/static/js/AboutSheet.jsx b/static/js/AboutSheet.jsx index 33a4de1601..fec48e9af6 100644 --- a/static/js/AboutSheet.jsx +++ b/static/js/AboutSheet.jsx @@ -53,7 +53,7 @@ const AboutSheet = ({ masterPanelSheetId, toggleSignUpModal }) => { const newSummary = event.target.value if (event.target.value.length > 280) { setValidation({ - validationMsg: Sefaria._("summary_limit"), + validationMsg: Sefaria._("sheet.message.summary_limit"), validationFailed: "summary" }); } @@ -241,7 +241,7 @@ const AboutSheet = ({ masterPanelSheetId, toggleSignUpModal }) => { tags={tags} suggestions={suggestions} onDelete={onTagDelete} - placeholderText={Sefaria._("add_topic")} + placeholderText={Sefaria._("sheet.placeholder.add_topic")} delimiters={["Enter", "Tab", ","]} onAddition={onTagAddition} onValidate={onTagValidate} @@ -262,7 +262,7 @@ const AboutSheet = ({ masterPanelSheetId, toggleSignUpModal }) => {
- {Sefaria._("sheet.your_sheet_is")}{ Sefaria._("published")} { Sefaria._("topic.visible_to_other")} + {Sefaria._("sheet.your_sheet_is")}{ Sefaria._("sheet.published")} { Sefaria._("topic.visible_to_other")}
diff --git a/static/js/AddToSourceSheet.jsx b/static/js/AddToSourceSheet.jsx index 193129b20c..bce1319083 100644 --- a/static/js/AddToSourceSheet.jsx +++ b/static/js/AddToSourceSheet.jsx @@ -178,8 +178,8 @@ class AddToSourceSheetBox extends Component { disallowedTagsMode: 'discard', }); let titleRetval = { - "en": `${sheetTitle} ${Sefaria._("section")}${nodeID}`, - "he": `${sheetTitle} ${Sefaria._("section")}${nodeID}` + "en": `${sheetTitle} ${Sefaria._("sheet.source_sheet.make_ref.section")}${nodeID}`, + "he": `${sheetTitle} ${Sefaria._("sheet.source_sheet.make_ref.section")}${nodeID}` } if (refTitles){ //show the refs also of a source, just to be nice titleRetval["en"] += `(${refTitles["en"]})`; @@ -231,7 +231,7 @@ class AddToSourceSheetBox extends Component {
- { Sefaria._("Create")} + { Sefaria._("common.create")}
@@ -304,7 +304,7 @@ class AddToSourceSheetWindow extends Component {
{Sefaria._uid ? null : - {Sefaria._("sheet.message.login_before_add_source_sheet")} {Sefaria._("log_in")} + {Sefaria._("sheet.message.login_before_add_source_sheet")} {Sefaria._("common.log_in")} }
diff --git a/static/js/BookPage.jsx b/static/js/BookPage.jsx index d1ff2e48f2..72c389fc47 100644 --- a/static/js/BookPage.jsx +++ b/static/js/BookPage.jsx @@ -31,6 +31,7 @@ import {ContentLanguageContext} from './context'; import Hebrew from './sefaria/hebrew.js'; import ReactTags from 'react-tag-autocomplete'; +import { propTypes } from 'react-markdown'; @@ -194,7 +195,7 @@ class BookPage extends Component { text.start_reading const tabs = [] - if (this.state.isContentVisible) { + if (this.state.isContentVisible || this.props.isNarrowColumn) { tabs.push({id: "contents", title: {en: Sefaria._("text.contents"), he: Sefaria._("text.contents")}}); } @@ -311,7 +312,7 @@ class BookPage extends Component { setTab={this.props.setTab} renderTab={renderTab} containerClasses={"largeTabs"}> - {this.state.isContentVisible? { @@ -272,7 +272,7 @@ class CollectionPage extends Component { renderItem={this.renderSheet} renderEmptyList={this.renderEmptyList} renderFooter={this.renderSearchLink} - sortOptions={[Sefaria._("filter_list.recent"),Sefaria._("filter_list.alphabetical") , Sefaria._("profile.tab.sheet.tag.views") ]} + sortOptions={[Sefaria._("common.filter_list.recent"),Sefaria._("collection.filter_list.alphabetical") , Sefaria._("profile.tab.sheet.tag.views") ]} data={sheets} containerClass={"sheetList"} scrollableElement={this.scrollableRef} @@ -639,22 +639,22 @@ class CollectionMemberListingActions extends Component { : null} {this.props.isAdmin || this.props.isSelf ?
- {this.props.isSelf ? Sefaria._("collection.leave_collection"): Sefaria._("remove")} + {this.props.isSelf ? "collection.leave_collection": "collection.remove"}
: null } {this.props.isInvitation && !this.state.invitationResent ?
- {Sefaria._("collection.resend_invitation")} + collection.resend_invitation
: null} {this.props.isInvitation && this.state.invitationResent ?
- {Sefaria._("collection.invitation_resent" )} + collection.invitation_resent
: null} {this.props.isInvitation ?
- { Sefaria._("remove")} + collection.remove
: null} diff --git a/static/js/CollectionsWidget.jsx b/static/js/CollectionsWidget.jsx index af5c1a188e..20fc17744d 100644 --- a/static/js/CollectionsWidget.jsx +++ b/static/js/CollectionsWidget.jsx @@ -147,7 +147,7 @@ const CollectionsWidget = ({sheetID, close, handleCollectionsChange}) => { {newName.length ?
- {Sefaria._("Create")} + {Sefaria._("common.create")}
: null} diff --git a/static/js/CommunityPage.jsx b/static/js/CommunityPage.jsx index 6c7c6bf14e..566c454e7b 100644 --- a/static/js/CommunityPage.jsx +++ b/static/js/CommunityPage.jsx @@ -110,7 +110,7 @@ const RecentlyPublished = ({multiPanel, toggleSignUpModal}) => { recentSheetsContent.splice(6, 0, joinTheConversation); recentSheetsContent.push( - { Sefaria._("load_more")} + { Sefaria._("common.load_more")} ); } diff --git a/static/js/ComparePanelHeader.jsx b/static/js/ComparePanelHeader.jsx index 12fd6a4f58..f09ed64621 100644 --- a/static/js/ComparePanelHeader.jsx +++ b/static/js/ComparePanelHeader.jsx @@ -27,7 +27,7 @@ const ComparePanelHeader = ({ search, category, openDisplaySettings, navHome, ca setQuery(e.target.value)} value={query} onKeyUp={handleSearchKeyUp} /> diff --git a/static/js/ConnectionFilters.jsx b/static/js/ConnectionFilters.jsx index f37a939625..1c38d69dae 100644 --- a/static/js/ConnectionFilters.jsx +++ b/static/js/ConnectionFilters.jsx @@ -59,7 +59,7 @@ class CategoryFilter extends Component {
- + ({this.props.count}) diff --git a/static/js/ConnectionsPanel.jsx b/static/js/ConnectionsPanel.jsx index a3f461e579..35527260ec 100644 --- a/static/js/ConnectionsPanel.jsx +++ b/static/js/ConnectionsPanel.jsx @@ -337,8 +337,8 @@ class ConnectionsPanel extends Component {
this.props.setConnectionsMode("About")} /> this.props.setConnectionsMode("Navigation")} /> - this.props.setConnectionsMode("SidebarSearch")} /> - this.props.setConnectionsMode("Translations")} count={resourcesButtonCounts.translations} /> + this.props.setConnectionsMode("SidebarSearch")} /> + this.props.setConnectionsMode("Translations")} count={resourcesButtonCounts.translations} />
} {showConnectionSummary ? @@ -369,8 +369,8 @@ class ConnectionsPanel extends Component { // looked at (this.props.masterPanelMode === "Sheet" && this.props.title !== "Sheet") ? <> - this.props.setConnectionsMode("About")} /> - this.props.setConnectionsMode("Translations")} /> + this.props.setConnectionsMode("About")} /> + this.props.setConnectionsMode("Translations")} /> : null @@ -383,7 +383,7 @@ class ConnectionsPanel extends Component { : null } - + {this.props.masterPanelMode === "Sheet" ? { return (
setConnectionsMode("Sheets")} /> - setConnectionsMode("WebPages")} /> + setConnectionsMode("WebPages")} /> setConnectionsMode("Topics")} alwaysShow={Sefaria.is_moderator} /> - setConnectionsMode("manuscripts")} /> - setConnectionsMode("Torah Readings")} /> + setConnectionsMode("manuscripts")} /> + setConnectionsMode("Torah Readings")} />
); } @@ -751,12 +751,12 @@ const ToolsList = ({ setConnectionsMode, toggleSignUpModal, openComparePanel, co return (
!Sefaria._uid ? toggleSignUpModal(SignUpModalKind.AddToSheet) : setConnectionsMode("Add To Sheet", { "addSource": "mainPanel" })} /> - {/* setConnectionsMode("Lexicon")} /> */} - {/* {openComparePanel ? : null} */} - !Sefaria._uid ? toggleSignUpModal(SignUpModalKind.Notes) : setConnectionsMode("Notes")} /> - {masterPanelMode !== "Sheet" ? setConnectionsMode("Share")} /> : null} - {/* setConnectionsMode("Feedback")} /> */} - {/* setConnectionsMode("Advanced Tools")} /> */} + {/* setConnectionsMode("Lexicon")} /> */} + {openComparePanel ? : null} + !Sefaria._uid ? toggleSignUpModal(SignUpModalKind.Notes) : setConnectionsMode("Notes")} /> + {masterPanelMode !== "Sheet" ? setConnectionsMode("Share")} /> : null} + {/* setConnectionsMode("Feedback")} /> */} + {/* setConnectionsMode("Advanced Tools")} /> */}
); } @@ -785,7 +785,7 @@ const AboutSheetButtons = ({ setConnectionsMode, masterPanelSheetId }) => { return (
{isOwner ? - setConnectionsMode("AboutSheet")} /> + setConnectionsMode("AboutSheet")} /> : setConnectionsMode("AboutSheet")} /> } @@ -795,7 +795,7 @@ const AboutSheetButtons = ({ setConnectionsMode, masterPanelSheetId }) => { }} /> : null } - setConnectionsMode("Share")} /> + setConnectionsMode("Share")} />
); } @@ -804,13 +804,13 @@ const SheetToolsList = ({ toggleSignUpModal, masterPanelSheetId, setConnectionsM // const [isOwner, setIsOwner] = useState(false); // const [isPublished, setIsPublished] = useState(false); const googleDriveState = { - export: { en: Sefaria._("export.google_doc") , he: Sefaria._("export.google_doc") }, - exporting: {en: Sefaria._("Exporting to Google Docs..."), he: Sefaria._("Exporting to Google Docs..."), greyColor: true}, - exportComplete: { en: Sefaria._("export.complete"), he: Sefaria._("export.complete"), secondaryEn: Sefaria._("export.open_google"), secondaryHe: Sefaria._("export.open_google"), greyColor: true} + export: { en: Sefaria._("common.export.google_doc") , he: Sefaria._("common.export.google_doc") }, + exporting: {en: Sefaria._("common.exporting.google_doc"), he: Sefaria._("common.exporting.google_doc"), greyColor: true}, + exportComplete: { en: Sefaria._("common.export.complete"), he: Sefaria._("common.export.complete"), secondaryEn: Sefaria._("common.export.open_google"), secondaryHe: Sefaria._("common.export.open_google"), greyColor: true} } const copyState = { - copy: { en: Sefaria._("copy"), he: Sefaria._("copy") }, - copying: { en: Sefaria._("copying"), he: Sefaria._("copying"), greyColor: true}, + copy: { en: Sefaria._("connection_panel.copy"), he: Sefaria._("connection_panel.copy") }, + copying: { en: Sefaria._("connection_panel.copying"), he: Sefaria._("connection_panel.copying"), greyColor: true}, copied: { en: Sefaria._("Sheet Copied"), he: Sefaria._("Sheet Copied"), secondaryHe: Sefaria._("sheet.view_copy"), secondaryEn: Sefaria._("sheet.view_copy"), greyColor: true }, error: { en: Sefaria._("message.there_is_error"), he: Sefaria._("message.there_is_error") } } @@ -926,7 +926,7 @@ const SheetToolsList = ({ toggleSignUpModal, masterPanelSheetId, setConnectionsM sheet.owner === Sefaria._uid || sheet.options.collaboration === "anyone-can-edit" ) ? - setConnectionsMode("DivineName")} /> : null} + setConnectionsMode("DivineName")} /> : null}
) @@ -939,7 +939,7 @@ class SheetNodeConnectionTools extends Component { : null} this.props.setConnectionsMode("Sheets")} /> - this.props.setConnectionsMode("Feedback")} /> + this.props.setConnectionsMode("Feedback")} /> ); } } @@ -1149,7 +1149,7 @@ const TopicList = ({ masterPanelMode, srefs, interfaceLang, contentLang }) => { {Sefaria.is_moderator && masterPanelMode === "Text" ? + createNewTopicStr={Sefaria._("topic.create_new_topic")}/> : null} {(!topics || !topics.length) ? (
@@ -1243,8 +1243,8 @@ class WebPagesList extends Component { if (!content.length) { const filterName = this.props.filter !== "all" ? this.props.filter : null; - const en = Sefaria._("no_web_pages") + (filterName ? Sefaria._("from") + filterName : "") + Sefaria._("here"); - const he = Sefaria._("no_web_pages") + (filterName ? Sefaria._("from") + filterName : "") + Sefaria._("here"); + const en = Sefaria._("connection_panel.web_list.no_web_pages") + (filterName ? Sefaria._("connection_panel.web_list.from") + filterName : "") + Sefaria._("connection_panel.web_list.here"); + const he = Sefaria._("connection_panel.web_list.no_web_pages") + (filterName ? Sefaria._("connection_panel.web_list.from") + filterName : "") + Sefaria._("connection_panel.web_list.here"); return
; @@ -1296,8 +1296,8 @@ const AdvancedToolsList = ({srefs, canEditText, currVersions, setConnectionsMode return (
- - !Sefaria._uid ? toggleSignUpModal(SignUpModalKind.AddConnection) : setConnectionsMode("Add Connection")} /> + + !Sefaria._uid ? toggleSignUpModal(SignUpModalKind.AddConnection) : setConnectionsMode("Add Connection")} /> {editText ? () : null}
); @@ -1441,7 +1441,7 @@ class ShareBox extends Component {
{this.state.sheet && Sefaria._uid === this.state.sheet.owner ?
- people_with_link + connection_panel.people_with_link
- {this.props.noteId ? Sefaria._("button.save") : Sefaria._("text.add_note")} + {this.props.noteId ? Sefaria._("common.button.save") : Sefaria._("text.add_note")}
{this.props.noteId ?
@@ -1698,14 +1698,14 @@ class AddConnectionBox extends Component { { Sefaria._("connection.choose_text_to_connect")}
- { Sefaria._("browse")} + { Sefaria._("connection_panel.add_connection.browse")}
: null} {this.props.srefs.length > 2 ?
- { Sefaria._("messange.we_only_understand_connection_betweeen_two_texts")} + { Sefaria._("message.we_only_understand_connection_betweeen_two_texts")}
: null} @@ -1726,11 +1726,11 @@ class AddConnectionBox extends Component { { value: "reference", label: Sefaria._("text.reference") }, { value: "related", label: Sefaria._("text.related Passage") } ]} - placeholder={Sefaria._("select_type")} + placeholder={Sefaria._("common.select_type")} onChange={this.setType} />
- {Sefaria._("add_connection")} + {Sefaria._("connection_panel.tool_button.add_connection")}
@@ -1773,7 +1773,7 @@ function ManuscriptImage(props) { { manuscript.manuscript[description] ? - + {manuscript.manuscript[description]}
: '' @@ -1781,7 +1781,7 @@ function ManuscriptImage(props) { { manuscript.manuscript['license'] ?
- {Sefaria._("License")} + {Sefaria._("connection_panel.license")} : {Sefaria._(manuscript.manuscript['license'])} @@ -1789,7 +1789,7 @@ function ManuscriptImage(props) {
: '' } - + { Sefaria.util.parseUrl(manuscript.manuscript['source']).host.replace("www.", "") } diff --git a/static/js/DictionarySearch.jsx b/static/js/DictionarySearch.jsx index 75376e7d60..6e656c73eb 100644 --- a/static/js/DictionarySearch.jsx +++ b/static/js/DictionarySearch.jsx @@ -179,7 +179,7 @@ class DictionarySearch extends Component { image of maginfying glass Cancel
- Save + common.save
diff --git a/static/js/Footer.jsx b/static/js/Footer.jsx index 45ea375102..5597d9f0c0 100644 --- a/static/js/Footer.jsx +++ b/static/js/Footer.jsx @@ -34,7 +34,7 @@ class Footer extends Component { return (
- Version: 1.2.0 + Version: 1.2.0
); } diff --git a/static/js/Header.jsx b/static/js/Header.jsx index ed3359e2ac..2673d1bdf2 100644 --- a/static/js/Header.jsx +++ b/static/js/Header.jsx @@ -142,7 +142,7 @@ class SearchBar extends Component { this.state = { searchFocused: false }; - this._searchOverridePre = Sefaria._("search_for") +': "'; + this._searchOverridePre = Sefaria._("header.search_bar.search_for") +': "'; this._searchOverridePost = '"'; this._type_icon_map = { "Collection": "collection.svg", @@ -379,7 +379,7 @@ class SearchBar extends Component { {
{mobile ? : null } - log_in + common.log_in {loginOnly ? null : {mobile ? : null } - sign_up + common.sign_up } { Sefaria._siteSettings.TORAH_SPECIFIC ? : null}
@@ -535,7 +535,7 @@ const MobileNavMenu = ({onRefClick, showSearch, openTopic, openURL, close, visib - save_and_history + bookmark.save_and_history @@ -545,7 +545,7 @@ const MobileNavMenu = ({onRefClick, showSearch, openTopic, openURL, close, visib {/* - About Sefaria + About Pecha */} {Sefaria._uid ? @@ -698,7 +698,7 @@ const HelpButton = () => { return ( ); diff --git a/static/js/Misc.jsx b/static/js/Misc.jsx index a5b36d0c50..ee9f646260 100644 --- a/static/js/Misc.jsx +++ b/static/js/Misc.jsx @@ -318,7 +318,7 @@ class ProfilePic extends Component { (
{ event.target.value = null}}/>
) : null } @@ -342,14 +342,14 @@ class ProfilePic extends Component { { (uploading || isFirstCropChange) ? (
) : (
- { Sefaria._("drag_corners_to_crop_images") } + { Sefaria._("profile.picture.drag_corners_to_crop_images") }
@@ -473,7 +473,7 @@ const FilterableList = ({ setFilter(e.target.value)} @@ -1142,11 +1142,11 @@ const CategoryHeader = ({children, type, data = [], buttonsToDisplay = ["subcat const [addSource, toggleAddSource] = useEditToggle(); const [addSection, toggleAddSection] = useEditToggle(); const [hiddenButtons, setHiddenButtons] = useHiddenButtons(true); - const buttonOptions = {"subcategory": ["category.add_sub_category", toggleAddCategory], - "source": ["category.add_source", toggleAddSource], - "section": ["category.add_section", toggleAddSection], + const buttonOptions = {"subcategory": ["category.admin.add_sub_category", toggleAddCategory], + "source": ["category.admin.add_source", toggleAddSource], + "section": ["category.admin.add_section", toggleAddSection], "reorder": ["category.reorder_section", toggleReorderCategory], - "edit": ["edit", toggleEditCategory]}; + "edit": ["category.admin.edit", toggleEditCategory]}; let wrapper = ""; let adminButtonsSpan = null; @@ -1882,7 +1882,7 @@ const SheetListing = ({ } { deletable ? - + : null } { @@ -1924,7 +1924,7 @@ const CollectionListing = ({data}) => { {data.listed ? null : ( - collection_list.unlisted + collection.collection_list.unlisted ) } {data.listed ? null : @@ -1932,7 +1932,7 @@ const CollectionListing = ({data}) => { {`${data.sheetCount} `} - sheets + common.sheets {data.memberCount > 1 ? @@ -1999,10 +1999,10 @@ class LoginPrompt extends Component { { Sefaria._("message.login_to_use_feature")} - { Sefaria._("log_in")} + { Sefaria._("common.log_in")} - { Sefaria._("sign_up")} + { Sefaria._("common.sign_up")} ); } @@ -2561,8 +2561,8 @@ Dropdown.propTypes = { class LoadingMessage extends Component { render() { - var message = this.props.message || Sefaria._("loading...") ; - var heMessage = this.props.heMessage || Sefaria._("loading..."); + var message = this.props.message || Sefaria._("common.loading") ; + var heMessage = this.props.heMessage || Sefaria._("common.loading"); var classes = "loadingMessage sans-serif " + (this.props.className || ""); return (
@@ -2714,7 +2714,7 @@ class FeedbackBox extends Component { {value: "good_vibes", label: Sefaria._("give_thanks")}, {value: "other", label: Sefaria._("other")}, ]} - placeholder={Sefaria._("select_type")} + placeholder={Sefaria._("common.select_type")} onChange={this.setType} /> @@ -2725,7 +2725,7 @@ class FeedbackBox extends Component { : null }
this.sendFeedback()}> - {Sefaria._("button.submit")} + {Sefaria._("common.button.submit")}
); @@ -2783,8 +2783,8 @@ class CookiesNotification extends Component { - { Sefaria._("message.cookies_msg") }{ Sefaria._("learn_more") } - { Sefaria._("ok") } + { Sefaria._("message.cookies_msg") }{ Sefaria._("common.learn_more") } + { Sefaria._("common.ok") } @@ -2891,7 +2891,7 @@ const AdminToolHeader = function({title, validate, close}) { { Sefaria._("button.cancel")}
- { Sefaria._("button.save")} + { Sefaria._("common.button.save")}
@@ -2980,7 +2980,7 @@ const TitleVariants = function({titles, update, options}) { const onTitleValidate = function (title) { const validTitle = titles.every((item) => item.name !== title.name); if (!validTitle) { - alert(title.name+ Sefaria._(" already exists.")) + alert(title.name+ Sefaria._("common.all_ready_exists")) } return validTitle; } @@ -3017,7 +3017,7 @@ const DivineNameReplacer = ({setDivineNameReplacement, divineNameReplacement}) = {value: "h", label:'ה׳'}, {value: "ykvk", label: 'יקוק'}, ]} - placeholder={Sefaria._("select_type")} + placeholder={Sefaria._("common.select_type")} onChange={(e) => setDivineNameReplacement((e.target.value))} preselected={divineNameReplacement} /> diff --git a/static/js/NotificationsPanel.jsx b/static/js/NotificationsPanel.jsx index 741a5ea7f3..5cf033e9cb 100644 --- a/static/js/NotificationsPanel.jsx +++ b/static/js/NotificationsPanel.jsx @@ -211,7 +211,7 @@ const FollowNotification = ({date, content}) => { const topLine = ( <> {content.name}  - is_following_you" + notifcation.is_following_you" ); diff --git a/static/js/ReaderApp.jsx b/static/js/ReaderApp.jsx index 436d5bebc4..5bdb069375 100644 --- a/static/js/ReaderApp.jsx +++ b/static/js/ReaderApp.jsx @@ -495,7 +495,7 @@ class ReaderApp extends Component { hist.mode = "topicCat"; } else { hist.url = "topics"; - hist.title = Sefaria._("Topics | " + siteName); + hist.title = "Topics | " + siteName; hist.mode = "topics"; } break; diff --git a/static/js/ReaderPanel.jsx b/static/js/ReaderPanel.jsx index b653868d9c..81449eac05 100644 --- a/static/js/ReaderPanel.jsx +++ b/static/js/ReaderPanel.jsx @@ -643,8 +643,9 @@ class ReaderPanel extends Component { let items = []; let menu = null; + let isNarrowColumn = false; const contextContentLang = {"language": this.getContentLanguageOverride(this.state.settings.language, this.state.mode, this.state.menuOpen)}; - + (this.state.width < 730) ? isNarrowColumn = true : false; if (this.state.mode === "Text" || this.state.mode === "TextAndConnections") { const oref = Sefaria.parseRef(this.state.refs[0]); const showHighlight = this.state.showHighlight || (this.state.highlightedRefs.length > 1); @@ -822,8 +823,10 @@ class ReaderPanel extends Component { showBaseText={this.showBaseText} />); } else if (this.state.menuOpen === "text toc") { + console.log(this.state.menuOpen) menu = ( 500 ? ); let aliyahOptions = [ - {name: "aliyotOn", content: Sefaria._("on"), role: "radio", ariaLabel: Sefaria._("Show Parasha Aliyot") }, - {name: "aliyotOff", content: Sefaria._("off"), role: "radio", ariaLabel: Sefaria._("Hide Parasha Aliyot") }, + {name: "aliyotOn", content: Sefaria._("common.on"), role: "radio", ariaLabel: Sefaria._("Show Parasha Aliyot") }, + {name: "aliyotOff", content: Sefaria._("common.off"), role: "radio", ariaLabel: Sefaria._("Hide Parasha Aliyot") }, ]; let aliyahToggle = this.renderAliyotToggle() ? ( this.props.parentPanel == "Sheet" ? null : @@ -1622,14 +1627,14 @@ class ReaderDisplayOptionsMenu extends Component { currentValue={this.props.settings.aliyotTorah} />) : null; let vowelsOptions = [ - {name: "all", content: "אָ֑", role: "radio", ariaLabel: Sefaria._("show_vowels")}, - {name: "partial", content: "אָ", role: "radio", ariaLabel: Sefaria._("show_only_vowels")}, - {name: "none", content: "א", role: "radio", ariaLabel: Sefaria._("show_only_consonenetal_text")} + {name: "all", content: "אָ֑", role: "radio", ariaLabel: Sefaria._("text.reader_option_menu.show_vowels")}, + {name: "partial", content: "אָ", role: "radio", ariaLabel: Sefaria._("text.reader_option_menu.show_only_vowels")}, + {name: "none", content: "א", role: "radio", ariaLabel: Sefaria._("text.reader_option_menu.show_only_consonenetal_text")} ]; let vowelToggle = null; if(!this.props.menuOpen){ let vowelOptionsSlice = this.vowelToggleAvailability(); - let vowelOptionsTitle = (vowelOptionsSlice == 0) ? Sefaria._("vocalization") : Sefaria._("vowels"); + let vowelOptionsTitle = (vowelOptionsSlice == 0) ? Sefaria._("text.reader_option_menu.vocalization") : Sefaria._("text.reader_option_menu.vowels"); vowelsOptions = vowelsOptions.slice(vowelOptionsSlice); vowelToggle = (this.props.settings.language !== "english" && vowelsOptions.length > 1) ? this.props.parentPanel == "Sheet" ? null : @@ -1643,13 +1648,13 @@ class ReaderDisplayOptionsMenu extends Component { } let punctuationOptions = [ - {name: "punctuationOn", content: Sefaria._("on"), role: "radio", ariaLabel: Sefaria._("show_punchuation")}, - {name: "punctuationOff", content: Sefaria._("off"), role: "radio", ariaLabel: Sefaria._("hide_punchuation")} + {name: "punctuationOn", content: Sefaria._("common.on"), role: "radio", ariaLabel: Sefaria._("text.reader_option_menu.show_puntuation")}, + {name: "punctuationOff", content: Sefaria._("common.off"), role: "radio", ariaLabel: Sefaria._("text.reader_option_menu.hide_puntuation")} ] let punctuationToggle = this.shouldPunctuationToggleRender() ? (

- Options + common.options

- {_("exact_matches_only")} + {_("search_filter.exact_matches_only")} diff --git a/static/js/SearchPage.jsx b/static/js/SearchPage.jsx index 7ca607ab53..3fe6c66de2 100644 --- a/static/js/SearchPage.jsx +++ b/static/js/SearchPage.jsx @@ -46,7 +46,7 @@ class SearchPage extends Component { {this.state.totalResults?.getValue() > 0 ?
{this.state.totalResults.asString()}  - {_("results")} + {_("search_page.results")}
: null } diff --git a/static/js/SearchResultList.jsx b/static/js/SearchResultList.jsx index a3b88fbc09..1caeb255ad 100644 --- a/static/js/SearchResultList.jsx +++ b/static/js/SearchResultList.jsx @@ -36,7 +36,7 @@ const SourcesSheetsDiv = (props) => { sourcesSheetsCounts.push(sourcesDiv); } if (props?.numSheets > 0) { - const sheetsDiv = {props.numSheets} sheets; + const sheetsDiv = {props.numSheets} common.sheets; sourcesSheetsCounts.push(sheetsDiv); } @@ -542,7 +542,7 @@ class SearchResultList extends Component { } } - const loadingMessage = (); + const loadingMessage = (); const noResultsMessage = (); const queryFullyLoaded = !this.state.moreToLoad[tab] && !this.state.isQueryRunning[tab]; diff --git a/static/js/Sheet.jsx b/static/js/Sheet.jsx index 22f1d159e0..c6b9c1c46c 100644 --- a/static/js/Sheet.jsx +++ b/static/js/Sheet.jsx @@ -439,7 +439,7 @@ class SheetSource extends Component { {this.props.source.addedBy ?
- {Sefaria._("added_by")}: + {Sefaria._("sheet.source_sheet.added_by")}:
: null } @@ -542,7 +542,7 @@ class SheetOutsideText extends Component { {this.props.source.addedBy ?
- {Sefaria._("added_by")}: + {Sefaria._("sheet.source_sheet.added_by")}:
: null } @@ -584,7 +584,7 @@ class SheetOutsideBiText extends Component { {this.props.source.addedBy ?
- {Sefaria._("added_by")}: + {Sefaria._("sheet.source_sheet.added_by")}:
: null } @@ -654,7 +654,7 @@ class SheetMedia extends Component {
{this.props.source.addedBy ? -
{Sefaria._("added_by")}:
+
{Sefaria._("sheet.source_sheet.added_by")}:
: null } diff --git a/static/js/SheetMetadata.jsx b/static/js/SheetMetadata.jsx index 2c2c76d823..9b71b13a7d 100644 --- a/static/js/SheetMetadata.jsx +++ b/static/js/SheetMetadata.jsx @@ -282,7 +282,7 @@ class SheetMetadata extends Component { const newSummary = event.target.value if (event.target.value.length > 280) { this.setState({ - validationMsg: Sefaria._("summary_limit"), + validationMsg: Sefaria._("sheet.message.summary_limit"), validationFailed: "summary" }); } @@ -377,13 +377,13 @@ class SheetMetadata extends Component { : null }
- {Sefaria._("created")} {Sefaria.util.naturalTime(timestampCreated, "en")} {Sefaria._("ago")} · {sheet.views} {Sefaria._("profile.tab.sheet.tag.views")} · { !!this.state.sheetSaves ? this.state.sheetSaves.length + this.state.sheetLikeAdjustment : '--'} {Sefaria._("Saves")} {this.state.published ? null : (· {Sefaria._("profile.tab.sheet.tag.not_published")})} + {Sefaria._("common.created")} {Sefaria.util.naturalTime(timestampCreated, "en")} {Sefaria._("sheet.created_time.ago")} · {sheet.views} {Sefaria._("profile.tab.sheet.tag.views")} · { !!this.state.sheetSaves ? this.state.sheetSaves.length + this.state.sheetLikeAdjustment : '--'} {Sefaria._("common.saves")} {this.state.published ? null : (· {Sefaria._("profile.tab.sheet.tag.not_published")})}
- {Sefaria._("created")} {Sefaria.util.naturalTime(timestampCreated, "he")} {Sefaria._("ago")} · + {Sefaria._("common.created")} {Sefaria.util.naturalTime(timestampCreated, "he")} {Sefaria._("sheet.created_time.ago")} · {sheet.views} · {Sefaria._("profile.tab.sheet.tag.views")} - {!!this.state.sheetSaves ? this.state.sheetSaves.length + this.state.sheetLikeAdjustment : '--' } {Sefaria._("Saves")} {this.state.published ? null : (· {Sefaria._("profile.tab.sheet.tag.not_published")})}
+ {!!this.state.sheetSaves ? this.state.sheetSaves.length + this.state.sheetLikeAdjustment : '--' } {Sefaria._("common.saves")} {this.state.published ? null : (· {Sefaria._("profile.tab.sheet.tag.not_published")})}
@@ -450,13 +450,13 @@ class SheetMetadata extends Component { {canEdit ?

- {this.state.published ? Sefaria._("publish_setting"): Sefaria._("Publish Sheet")} + {this.state.published ? Sefaria._("sheet.publish_setting"): Sefaria._("Publish Sheet")}

{this.state.published ? -

{ Sefaria._("sheet.your_sheet_is")} { Sefaria._("published")} { Sefaria._("topic.visible_to_other")}

: +

{ Sefaria._("sheet.your_sheet_is")} { Sefaria._("sheet.published")} { Sefaria._("topic.visible_to_other")}

:

{ Sefaria._("List your sheet on Sefaria for others to discover.")}

} @@ -478,7 +478,7 @@ class SheetMetadata extends Component { tags={this.state.tags} suggestions={this.state.suggestions} onDelete={this.onTagDelete.bind(this)} - placeholderText={Sefaria._("add_topic")} + placeholderText={Sefaria._("sheet.placeholder.add_topic")} delimiters={["Enter", "Tab", ","]} onAddition={this.onTagAddition.bind(this)} onValidate={this.onTagValidate.bind(this)} diff --git a/static/js/TextColumnBanner.jsx b/static/js/TextColumnBanner.jsx index 2842e1907e..a234dec4d4 100644 --- a/static/js/TextColumnBanner.jsx +++ b/static/js/TextColumnBanner.jsx @@ -92,7 +92,7 @@ const TransLangPrefAskBanner = ({ setAccepted, setTranslationLanguagePreference */ const OpenTransBanner = ({ openTranslations }) => { const buttons = [{ - text: Sefaria._("go_to_translation"), + text: Sefaria._("text.text_column_banner.go_to_translation"), onClick: () => { openTranslations(); }, sideEffect: "close", }]; diff --git a/static/js/TopicPage.jsx b/static/js/TopicPage.jsx index 44b156036e..d80772b6c1 100644 --- a/static/js/TopicPage.jsx +++ b/static/js/TopicPage.jsx @@ -248,7 +248,7 @@ const TopicCategory = ({topic, topicTitle, setTopic, setNavTopic, compare, initi type: "TitledText", props: { enTitle: "About", - heTitle: Sefaria._("about"), + heTitle: Sefaria._("common.about"), enText: topicData.description.en, heText: topicData.description.he } @@ -497,8 +497,8 @@ const TopicPage = ({ if (displayTabs.length) { displayTabs.push({ title: { - en: Sefaria._("dropdown.filter"), - he: Sefaria._("dropdown.filter") + en: Sefaria._("common.dropdown.filter"), + he: Sefaria._("common.dropdown.filter") }, id: 'filter', icon: `/static/icons/arrow-${showFilterHeader ? 'up' : 'down'}-bold.svg`, @@ -852,7 +852,7 @@ const TopicMetaData = ({ topicTitle, timePeriod, multiPanel, topicImage, propert if (!url) { return null; } return ( ); diff --git a/static/js/TopicPageAll.jsx b/static/js/TopicPageAll.jsx index d253f5706c..7d01f89cb4 100644 --- a/static/js/TopicPageAll.jsx +++ b/static/js/TopicPageAll.jsx @@ -97,7 +97,7 @@ class TopicPageAll extends Component {
- + { this.state.filter.length ?
topic.reset diff --git a/static/js/TopicSearch.jsx b/static/js/TopicSearch.jsx index c78f66cb20..a1db61c72b 100644 --- a/static/js/TopicSearch.jsx +++ b/static/js/TopicSearch.jsx @@ -114,7 +114,7 @@ class TopicSearch extends Component { else { return ( (

- Translations + connection_pannel.translations

- - Pecha acquires translations to enrich your learning experience. Preview or choose a different translation below. - དཔེ་ཆ་དྲ་ཚིག་གིས་འགྱུར་མ་ཁག་བཟོས་ཏེ་སྦྱོང་ཡག་ལ་རོག་རམ་བྱེད་ཐུབ་ གཤམ་འོག་ལ་སྐད་ཡིག་གཞན་འདེམ་རོགས་། - + connection_pannel.translation.description - learn_more + common.learn_more
diff --git a/static/js/UpdatesPanel.jsx b/static/js/UpdatesPanel.jsx index d8c0a5d599..25b7587114 100644 --- a/static/js/UpdatesPanel.jsx +++ b/static/js/UpdatesPanel.jsx @@ -94,7 +94,7 @@ class UpdatesPanel extends Component {
-

Updates

+

side_nav.updates

{Sefaria.is_moderator?:""} diff --git a/static/js/UserHistoryPanel.jsx b/static/js/UserHistoryPanel.jsx index e9bb695863..c881bb5c84 100644 --- a/static/js/UserHistoryPanel.jsx +++ b/static/js/UserHistoryPanel.jsx @@ -29,7 +29,7 @@ const UserHistoryPanel = ({menuOpen, toggleLanguage, openDisplaySettings, openNa - save + common.save @@ -114,8 +114,8 @@ const UserHistoryList = ({store, scrollableRef, menuOpen, toggleSignUpModal}) => return (
{menuOpen === "history" ? - text_sheet_available_here - : {Sefaria._("bookmark.icon_description")}} + user_history_panel.text_sheet_available_here + : bookmark.icon_description}
); } diff --git a/static/js/UserProfile.jsx b/static/js/UserProfile.jsx index 179f12dd7f..eb253eac6f 100644 --- a/static/js/UserProfile.jsx +++ b/static/js/UserProfile.jsx @@ -32,17 +32,17 @@ class UserProfile extends Component { const showNotes = !!props.profile.id && Sefaria._uid === props.profile.id; const showBio = !!props.profile.bio; const tabs = [ - { id: "sheets", text: "Sheets", icon: "/static/icons/sheet.svg" }, - { id: "collections", text: Sefaria._("collection"), icon: "/static/icons/collection.svg" }, - { id: "followers", text: "Followers", invisible: true }, - { id: "following", text: "Following", invisible: true }, + { id: "sheets", text:Sefaria._("profile.tab.sheets"), icon: "/static/icons/sheet.svg" }, + { id: "collections", text: Sefaria._("profile.tab.collection"), icon: "/static/icons/collection.svg" }, + { id: "followers", text: Sefaria._("common.followers"), invisible: true }, + { id: "following", text: Sefaria._("common.following"), invisible: true }, { id: "torah-tracker", text: Sefaria._("profile.buddhish_text_tracker"), invisible: Sefaria._uid !== props.profile.id, icon: "/static/icons/chart-icon.svg", href: "/torahtracker", applink: true, justifyright: true} ]; if (showNotes) { - tabs.splice(2, 0, { id: "notes", text: Sefaria._("notes"), icon: "/static/icons/note.svg" }); + tabs.splice(2, 0, { id: "notes", text: Sefaria._("user_profile.notes"), icon: "/static/icons/note.svg" }); } if (showBio) { - tabs.push({ id: "about", text: Sefaria._("about"), icon: "/static/icons/info.svg" }); + tabs.push({ id: "about", text: Sefaria._("common.about"), icon: "/static/icons/info.svg" }); } return { showNotes, @@ -96,7 +96,7 @@ class UserProfile extends Component {
Collection icon - Create a New Collection + common.collection.btn.create_new_collection
); } @@ -111,7 +111,7 @@ class UserProfile extends Component { ); @@ -257,14 +257,14 @@ class UserProfile extends Component { renderFollowerHeader() { return (
- followers {`(${this.props.profile.followers.length})`} + common.followers {`(${this.props.profile.followers.length})`}
); } renderFollowingHeader() { return (
- following {`(${this.props.profile.followees.length})`} + common.following {`(${this.props.profile.followees.length})`}
); } @@ -287,14 +287,14 @@ class UserProfile extends Component { renderEmptyFollowerList() { return (
- {Sefaria._("zero_followers")} + {Sefaria._("profile.zero_followers")}
); } renderEmptyFollowingList() { return (
- {Sefaria._("zero_following")} + {Sefaria._("profile.zero_following")}
); } @@ -359,7 +359,7 @@ class UserProfile extends Component { renderItem={this.renderSheet} renderEmptyList={this.renderEmptySheetList} renderHeader={this.renderSheetHeader} - sortOptions={[Sefaria._("filter_list.recent"), Sefaria._("profile.tab.sheet.tag.views")]} + sortOptions={[Sefaria._("common.filter_list.recent"), Sefaria._("profile.tab.sheet.tag.views")]} containerClass={"sheetList"} getData={this.getSheets} data={this.getSheetsFromCache()} @@ -373,7 +373,7 @@ class UserProfile extends Component { renderItem={this.renderCollection} renderEmptyList={this.renderEmptyCollectionList} renderHeader={this.renderCollectionHeader} - sortOptions={["Recent", "Name", "Sheets"]} + sortOptions={[Sefaria._("common.filter_list.recent"), Sefaria._("common.filter_list.name"), Sefaria._("common.sheets")]} getData={this.getCollections} data={this.getCollectionsFromCache()} refreshData={this.state.refreshCollectionsData} @@ -441,7 +441,7 @@ const EditorToggleHeader = ({usesneweditor}) => { const [feedbackHeaderState, setFeedbackHeaderState] = useState("hidden") const text = {usesneweditor ? "You are currently testing the new Sefaria editor." : "You are currently using the old Sefaria editor."}; - const buttonText = {usesneweditor ? "back_to_old_version" : "try_new_version"}; + const buttonText = {usesneweditor ? "editor.back_to_old_version" : "editor.message.try_new_version"}; const sendFeedback = () => { @@ -480,9 +480,9 @@ const EditorToggleHeader = ({usesneweditor}) => {

message.new_pecha_editor

message.encounter_issue

    -
  • technical_problem
  • +
  • message.technical_problem
  • editor.difficulties_using_editor
  • -
  • missing_feature
  • +
  • message.missing_feature

@@ -500,14 +500,14 @@ const EditorToggleHeader = ({usesneweditor}) => {

) const thankYouContent = (
-

thank_you

+

feedback.message.thank_you

feedback.message.response hello@sefaria.org.

- +
) @@ -573,7 +573,7 @@ const ProfileSummary = ({ profile:p, follow, openFollowers, openFollowing, toggl
{ p.position || p.organization ?
- sd fasdfa{p.position} + {p.position} { p.position && p.organization ? { Sefaria._("profile.at") } : null } {p.organization}
: null @@ -616,12 +616,12 @@ const ProfileSummary = ({ profile:p, follow, openFollowers, openFollowing, toggl
diff --git a/static/js/VersionBlock/VersionBlock.jsx b/static/js/VersionBlock/VersionBlock.jsx index 13540a987f..5851909ef1 100644 --- a/static/js/VersionBlock/VersionBlock.jsx +++ b/static/js/VersionBlock/VersionBlock.jsx @@ -15,7 +15,7 @@ import VersionBlockWithPreview from "./VersionBlockWithPreview"; class VersionBlockUtils { static makeVersionTitle(version){ if (version.merged) { - return {"className" : "", "text": Sefaria._("merged_from") + " " + Array.from(new Set(version.sources)).join(", ")}; + return {"className" : "", "text": Sefaria._("text.version.merged_from") + " " + Array.from(new Set(version.sources)).join(", ")}; } else if (Sefaria.interfaceLang === "english" || !version.versionTitleInHebrew) { return {"className" : "", "text" : version.versionTitle}; } else { @@ -189,7 +189,7 @@ class VersionBlock extends Component { } makeSelectVersionLanguage(){ let voc = this.props.version.isSource ? 'Version' : "Translation"; - return this.props.isCurrent ? Sefaria._("Current " + voc) : Sefaria._("select "+ voc); + return this.props.isCurrent ? Sefaria._("Current") : Sefaria._("common.select"); } hasExtendedNotes(){ @@ -321,7 +321,7 @@ class VersionBlock extends Component { - {Sefaria._("Read More")} + {Sefaria._("common.read_more")}
diff --git a/static/js/VersionBlock/VersionImage.jsx b/static/js/VersionBlock/VersionImage.jsx index 5732a7849e..018e133f6b 100644 --- a/static/js/VersionBlock/VersionImage.jsx +++ b/static/js/VersionBlock/VersionImage.jsx @@ -15,7 +15,7 @@ function VersionImage({version}) { diff --git a/static/js/VersionBlock/VersionInformation.jsx b/static/js/VersionBlock/VersionInformation.jsx index a20b014e48..8e739e1e83 100644 --- a/static/js/VersionBlock/VersionInformation.jsx +++ b/static/js/VersionBlock/VersionInformation.jsx @@ -21,7 +21,7 @@ function VersionInformation({currentRef, version}) {
- {`${Sefaria._("digitization")}: `} + {`${Sefaria._("text.version.information.digitization")}: `} {Sefaria._("Sefaria")} @@ -29,7 +29,7 @@ function VersionInformation({currentRef, version}) {
diff --git a/static/js/categorize_sheets.jsx b/static/js/categorize_sheets.jsx index 6ba206debb..906cfebfcf 100644 --- a/static/js/categorize_sheets.jsx +++ b/static/js/categorize_sheets.jsx @@ -189,7 +189,7 @@ class SheetCategorizer extends React.Component { suggestions={this.state.suggestions} onDelete={this.onTagDelete.bind(this)} onAddition={this.onTagAddition.bind(this)} - placeholderText={Sefaria._("add_topic")} + placeholderText={Sefaria._("sheet.placeholder.add_topic")} delimiters={["Enter", "Tab", ","]} onInput={this.updateSuggestedTags.bind(this)} /> @@ -206,7 +206,7 @@ class SheetCategorizer extends React.Component {
-

{Sefaria._("categories")}

+

{Sefaria._("sheet.categories")}

{ this.state.allCategories.map((category, i) => (
@@ -226,7 +226,7 @@ class SheetCategorizer extends React.Component {
-

{Sefaria._("setting_admin")}

+

{Sefaria._("sheet.catagorize.setting_admin")}

Latest sheets without: {this.state.doesNotContain}

diff --git a/static/js/diff_page.jsx b/static/js/diff_page.jsx index e8abc72c1d..a9aa117ad9 100644 --- a/static/js/diff_page.jsx +++ b/static/js/diff_page.jsx @@ -542,7 +542,7 @@ class DiffRow extends Component { render() { if (!this.fullyLoaded()) { - return {_("loading...")} + return {_("common.loading")} } var cells = ["v1","v2"].map(v => { + event.preventDefault(); + deferredPrompt = event; // Store the event for later use + + // Show the install dialog + installDialog.style.display = 'block'; +}); + +// Handle the install button click +installBtn.addEventListener('click', () => { + if (deferredPrompt) { + // Show the PWA installation prompt + deferredPrompt.prompt(); + + // Wait for the user's response + deferredPrompt.userChoice.then((choiceResult) => { + if (choiceResult.outcome === 'accepted') { + console.log('User accepted the PWA installation'); + } else { + console.log('User dismissed the PWA installation'); + } + deferredPrompt = null; // Clear the prompt + }); + } + + // Hide the dialog + installDialog.style.display = 'none'; +}); + +// Handle the close button click +closeBtn.addEventListener('click', () => { + installDialog.style.display = 'none'; +}); diff --git a/static/js/s1/util.js b/static/js/s1/util.js index 5007ef5d01..c3f92252e6 100644 --- a/static/js/s1/util.js +++ b/static/js/s1/util.js @@ -815,6 +815,7 @@ sjs.textBrowser = { // Return to the home state this.buildCategoryNav(sjs.toc); this._path = []; + this._isFrozen = false; this._currentText = null; this._currentCategories = sjs.toc; sjs.textBrowser.previewActive = false; @@ -822,11 +823,23 @@ sjs.textBrowser = { this._setInitialMessage(); }, forward: function(to, index) { + // Check if the function is currently frozen + if (this._isFrozen) { + return; // Exit the function if it's frozen + } + + // Set the flag to freeze the function + this._isFrozen = true; + + // Unfreeze the function after 3 seconds + setTimeout(() => { + this._isFrozen = false; + }, 1400); + // navigate forward to "to", a string naming a text, category or section // as it appears in the nav or path //if (to != (this._path[this._path.length-1])) { //if "to" = the last node in current path, don't go anywhere to prevent rapid clicking on the same item doubling up and throwing error - if (index === this._path.length ) { - + if (index === this._path.length) { var next = null; this._path.push(to); this.updatePath(); @@ -834,6 +847,9 @@ sjs.textBrowser = { for (var i = 0; i < this._currentCategories.length; i++) { if (this._currentCategories[i].category === to || this._currentCategories[i].title === to) { next = this._currentCategories[i]; + if (next.category === next.contents[0].title) { + next = next.contents[0] + } if (next.category) { // Click on a Category this._currentCategories = next.contents; this.buildCategoryNav(next.contents); @@ -867,9 +883,9 @@ sjs.textBrowser = { var node = schema; var sections; var maxDepth; - if (isComplex) { - var titles = this._path.slice(this._currentText.categories.length + 1); + var titles = this._path.slice(this._currentText.categories.length); + var node_and_sections = schema.get_node_and_sections_from_titles(titles); node = node_and_sections.node; sections = node_and_sections.sections; @@ -923,7 +939,7 @@ sjs.textBrowser = { }, buildComplexTextNav: function() { var schema = sjs.textBrowser._currentSchema; - var titles = this._path.slice(this._currentText.categories.length + 1); + var titles = this._path.slice(this._currentText.categories.length); var node = schema.get_node_from_titles(titles); var children = node.children(); var html = ""; @@ -1014,10 +1030,11 @@ sjs.textBrowser = { "དཔེ་ཆ་ཡོངས་རྫོགས།" + ""; for (var i = 0; i < this._path.length; i++) { - if(this._path[i] !== this._path[i+1]) { - var name = sjs.interfaceLang === "he" ? Sefaria.hebrewTerm(this._path[i]) : this._path[i] - html += " > " + name + ""; - } + var name = sjs.interfaceLang === "he" ? Sefaria.hebrewTerm(this._path[i]) : this._path[i] + html += " > " + name + ""; + // if(this._path[i] !== this._path[i+1]) { + + // } } $("#browserPath").html(html); this.updateMessage(); @@ -1096,19 +1113,22 @@ sjs.textBrowser = { } var schema = sjs.textBrowser._currentSchema; var isComplex = schema.has_children(); - var sections = this._path.slice(this._currentText.categories.length + 1); var ref = ""; + var sections = this._path.slice(this._currentText.categories.length) if (isComplex) { ref = schema.get_node_url_from_titles(sections, true); } else { + sections = sections.map(function(section) { return section.slice(section.lastIndexOf(" ")+1); }); ref = this._currentText.title + " " + sections.join(":"); + } var selected = $(".segment.selected"); + if (selected.length > 0) { ref += ":" + (selected.first().attr("data-section")); } @@ -1138,6 +1158,7 @@ sjs.textBrowser = { }, _handleNavClick: function() { // Move forward on nav click + var to = $(this).attr("data-name"); if (sjs.textBrowser.previewActive == true) { sjs.textBrowser._path.pop(); diff --git a/static/js/sefaria/i18n.js b/static/js/sefaria/i18n.js index cd85e22381..9f2f500dc6 100644 --- a/static/js/sefaria/i18n.js +++ b/static/js/sefaria/i18n.js @@ -10,7 +10,7 @@ i18n .init({ lng: Sefaria.interfaceLang, fallbackLng: 'en', - debug: false, + debug: true, resources: { ...LanguagesJson} }) diff --git a/static/js/sefaria/localizationLanguage/chinese.json b/static/js/sefaria/localizationLanguage/chinese.json index 084f88d206..90f114858e 100644 --- a/static/js/sefaria/localizationLanguage/chinese.json +++ b/static/js/sefaria/localizationLanguage/chinese.json @@ -1,40 +1,43 @@ { "text.reader_option_menu.layout": "布局", - "loading": "加载中...", - "version": "版本", - "log_in": "登录", - "sign_up": "注册", - "email": "电子邮箱", - "password": "密码", - "pecha": "pecha", - "edit": "Edit", + "common.loading": "加载中...", + "common.version": "版本", + "common.log_in": "登录", + "common.sign_up": "注册", + "common.email": "电子邮箱", + "common.password": "密码", + "common.pecha": "pecha", + "common.edit": "Edit", + "connection_pannel.translation.description": "དཔེ་ཆ་དྲ་ཚིག་གིས་འགྱུར་མ་ཁག་བཟོས་ཏེ་སྦྱོང་ཡག་ལ་རོག་རམ་བྱེད་ཐུབ་ གཤམ་འོག་ལ་སྐད་ཡིག་གཞན་འདེམ་རོགས་།", "connection_pannel.tool_btn.more": "更多", "connection_pannel.tool_btn.less": "更少", - "translations": "翻译", - "collection_list.unlisted": "未列出", + "connection_pannel.translations": "翻译", + "collection.collection_list.unlisted": "未列出", "user.history": "历史", + "common.read_more": "མང་ཙམ་ཀློགས།", "text.verion_block.digitized_by_pecha": "由 Sefaria 数字化", "connection_pannel.menuscript_image.location.location": "位置:", "text.translation_page.uncategorized": "未分类", - "learn_more": "了解更多", + "common.learn_more": "了解更多", "community.sheets.recently_published": "最近发布", "calender_page.weekly_torah_portion": "每周托拉部分", "calender_page.weekly_learning":"Weekly Learning", "calender_page.daily_learning":"Daily Learning", - "mobile_apps": "移动应用", - "on": "开", - "off": "关", - "yes": "是", - "no": "否", - "close": "关闭", - "button.submit": "提交", - "button.save": "保存", - "button.cancel": "取消", - "button.add": "添加", - "button.send": "发送", - "filter_list.recent": "最近", - "dropdown.filter": "过滤器", - "filter_list.alphabetical": "按字母顺序", + "header.button.help": "Help", + "common.on": "开", + "common.off": "关", + "common.yes": "是", + "common.no": "否", + "common.close": "关闭", + "common.button.submit": "提交", + "common.button.save": "保存", + "common.button.cancel": "取消", + "common.button.add": "添加", + "common.button.send": "发送", + "common.filter_list.recent": "最近", + "common.filter_list.name": "མིང་།", + "common.dropdown.filter": "过滤器", + "collection.filter_list.alphabetical": "按字母顺序", "filter_list.relevance": "相关性", "filter_list.chronological": "按时间顺序", "header.notifications": "通知", @@ -46,33 +49,31 @@ "url.paramwith": "与", "url.title_descriptions": "Pecha - Buddhism in your own words", "url.topic.descriptions": "Explore Buddhist Texts by Topic - {{navigationTopicLetter}} | {{siteName}}", - "copy": "复制", + "connection_panel.copy": "复制", "view_in_editor": "在编辑器中查看", - "copied": "已复制", - "copying": "复制中...", - "delete": "删除", + "connection_panel.copying": "复制中...", + "sheet.sheet_list.delete": "删除", "topic.read_the_portion": "阅读部分", "note.my_note": "我的笔记", - "update": "更新", - "create_new": "创建新项目", - "publish_setting": "发布设置", - "published": "已发布", - "color": "颜色", - "font_size": "字体大小", - "punctuation": "标点", - "show_punchuation": "显示标点", - "hide_punchuation": "隐藏标点", - "show_vowels": "显示元音", - "vocalization": "发音", - "vowels": "元音", - "show_only_vowels": "只显示元音", - "show_only_consonenetal_text": "只显示辅音文本", + "side_nav.updates": "更新", + "sheet.create_new": "创建新项目", + "sheet.publish_setting": "发布设置", + "sheet.published": "已发布", + "text.reader_option_menu.color": "颜色", + "text.reader_option_menu.font_size": "字体大小", + "text.reader_option_menu.punctuation": "标点", + "text.reader_option_menu.show_puntuation": "显示标点", + "text.reader_option_menu.hide_puntuation": "隐藏标点", + "text.reader_option_menu.show_vowels": "显示元音", + "text.reader_option_menu.vocalization": "发音", + "text.reader_option_menu.vowels": "元音", + "text.reader_option_menu.show_only_vowels": "只显示元音", + "text.reader_option_menu.show_only_consonenetal_text": "只显示辅音文本", "feedback.describe_issue": "描述问题...", "feedback.report_issue": "报告问题", "feedback.request_translation": "请求翻译", "feedback.report_bug": "报告错误", "feedback.get_help": "获取帮助", - "help": "帮助", "get_newsletter": "获取新闻通讯", "signup_to_get_updates": "注册以获取更新", "feedback.request_feature": "请求功能", @@ -80,34 +81,32 @@ "feedback.other": "其他", "feedback.please_select_type": "请选择反馈类型", "feedback.message.error_sending_feedback": "很遗憾,发送反馈时发生错误。请重试或重新加载此页面。", - "tell_what_you_think": "告诉我们你的想法...", - "select_type": "选择类型", - "added_by": "由...添加", - "love_learning": "热爱学习?", - "signup_to_get_more_from_pecha": "注册以从 Sefaria 获取更多内容", + "common.select_type": "选择类型", + "sheet.source_sheet.added_by": "由...添加", + "modal.sign_up.love_learning": "热爱学习?", + "modal.sign_up.signup_to_get_more_from_pecha": "注册以从 Sefaria 获取更多内容", "sheet.make_source_sheet": "创建资源表", "note.take_note": "记笔记", - "notes": "Notes", + "user_profile.notes": "Notes", "text.save_text": "保存文本", - "stay_in_the_know": "保持知情", - "remove": "移除", + "modal.sign_up.stay_in_the_know": "保持知情", + "collection.remove": "移除", "message.email_successfully_changed": "邮箱地址已成功更改!", - "setting_saved": "设置已保存", "message.warning_delete_reading_history": "关闭此功能将永久删除您的阅读历史。", - "export.google_doc": "导出到 Google 文档", - "export.complete": "导出完成", - "export.open_google": "在 Google 中打开", - "follow": "关注", - "unfollow": "取消关注", - "follow_back": "回关", - "followers": "粉丝", - "following": "关注中", - "follow_author": "关注您喜爱的作者", - "share": "分享", - "share_link": "分享链接", - "share_on_fb": "分享到 Facebook", - "share_on_x": "分享到 X(前推特)", - "share_by_email": "通过电子邮件分享", + "common.export.google_doc": "导出到 Google 文档", + "common.exporting.google_doc":"Export to Google Docs", + "common.export.complete": "导出完成", + "common.export.open_google": "在 Google 中打开", + "common.follow": "关注", + "common.unfollow": "取消关注", + "common.follow_back": "回关", + "common.followers": "粉丝", + "common.following": "关注中", + "common.share": "分享", + "common.share_link": "分享链接", + "common.share_on_fb": "分享到 Facebook", + "common.share_on_x": "分享到 X(前推特)", + "common.share_by_email": "通过电子邮件分享", "bilingual": "双语", "english": "英语", "tibetan": "藏语", @@ -126,18 +125,19 @@ "persian": "波斯语", "ladino": "拉迪诺语", "chinese": "中文", - "bilingual_layout": "双语布局", + "text.reader_option_menu.bilingual_layout": "双语布局", "search_page.results_for": "搜索结果: ( {{searchedItem}} )", - "results": "结果", - "options": "选项", - "exact_matches_only": "仅精确匹配", - "search_texts": "搜索文本", - "search_in_this_text": "在此文本中搜索", - "search": "搜索", - "searching": "搜索中...", - "search_topic": "搜索主题", - "search_dictionary": "搜索字典", - "search_for": "搜索", + "search_page.results": "结果", + "common.options": "选项", + "common.collection.btn.create_new_collection": "ཕྱོགས་བསྒྲིགས་གསར་པ་ཞིག་བཟོ།", + "search_filter.exact_matches_only": "仅精确匹配", + "search.topic.searching_for_topic": "བརྗོད་གཞི་ཞིག་ཚོལ།", + "connection_panel.search_in_this_text": "在此文本中搜索", + "common.placeholder.search": "搜索", + "search.result_list.searching": "搜索中...", + "topic.search_topics": "搜索主题", + "connection_panel.search_dictionary": "搜索字典", + "header.search_bar.search_for": "搜索", "search_text_or_keywords": "在此输入文本或关键词", "bookmark.icon_description": "点击书签图标将文本或表单保存到这里。", "sign_up.form.first_name": "名字", @@ -210,7 +210,7 @@ "text.chapter": "章节", "text.versions": "版本", "text.versions.source": "来源", - "text.versions.review_history": "修订历史", + "text.versions.information.review_history": "修订历史", "text.versions.in_progress": "进行中", "text.versions.done": "已完成", "text.download": "下载", @@ -253,12 +253,12 @@ "text.all_commentary": "所有注释", "text.show_all_commnentaries": "显示所有注释", "text.topic_connected_to": "此主题与以下相关", - "panel.tools": "工具", - "panel.more_options": "更多选项", - "panel.notes": "笔记", - "panel.compare_text": "比较文本", - "panel.feed_back": "反馈", - "panel.advance": "高级", + "connection_panel.tools": "工具", + "connection_panel.more_options": "更多选项", + "connection_panel.notes": "笔记", + "connection_panel.compare_text": "比较文本", + "connection_panel.feed_back": "反馈", + "connection_panel.advance": "高级", "text.write_note": "写一条笔记...", "text.add_note": "添加笔记", "text.go_to_my_notes": "前往我的笔记", @@ -306,7 +306,7 @@ "side_nav.stay_connected.decription": "获取新文本、学习资源、功能等的更新。", "side_nav.make_donation": "捐赠", "sheet.new_source_sheet": "新资源表单", - "sheets":"Sheets", + "common.sheets":"Sheets", "sheet.source_sheet": "资源表单", "sheet.about_this_sheet": "关于此表单", "sheet.source": "来源", @@ -320,11 +320,8 @@ "sheet.add_this_source_to_Source_Sheet": "将此资源添加到资源表单", "sheet.add_to_sheet": "添加到表单", "sheet.add_to": "添加到", - "sheet.this_source_was_added_to": "此资源已添加到", - "sheet.ok": "确定", "sheet.write_or_past_text": "写入或粘贴文本", "sheet.add_media_link": "添加图像、YouTube 视频、SoundCloud 链接或 MP3", - "sheet.past_url": "粘贴链接", "sheet.upload_image": "上传图片", "sheet.upload_image_failed_msg": "无法添加图片。请确保上传的文件为 JPEG、PNG 或 GIF。", "sheet.section_comment": "评论此章节", @@ -349,9 +346,7 @@ "sheet.write_summary": "写一份摘要以帮助其他人理解您的表单...", "sheet.add_tags": "添加标签...", "sheet.list_on_pecha": "列在 Pecha 上", - "sheet.yes": "是", "sheet.any_one_can_access": "任何有链接的人都可以", - "sheet.file": "文件", "sheet.copy_sheet": "复制表单", "sheet.export_to_google": "导出到 Google Drive", "sheet.delete_sheet": "删除表单", @@ -455,12 +450,13 @@ "topic.about_description": "主题页面提供了数千个精选主题的各种资源。", "topic.trend": "热门主题", "topic.combine_source": "将我们图书馆的资源与您的评论、问题、图片和视频结合起来。", - "add_topic": "添加主题", - "create_new_topic": "创建新主题:", + "sheet.placeholder.add_topic": "添加主题", + "topic.create_new_topic": "创建新主题:", "enter_source_ref": "输入资源参考(例如:'Yevamot.62b.9-11' 或 'Yevamot 62b:9-11')", - "category.add_sub_category": "添加子类别", - "category.add_source": "Add a source", - "category.add_section": "Add section", + "category.admin.add_sub_category": "添加子类别", + "category.admin.add_source": "Add a source", + "category.admin.add_section": "Add section", + "category.admin.edit": "རྩོམ་སྒྲིག།", "category.reorder_section": "Reorder sources", "reorder_source": "重新排序资源", "topic.all_topics": "所有主题", @@ -489,7 +485,7 @@ "note_save_error_try_again": "保存笔记时出现错误。请重试或重新加载此页面。", "note_confirm_delete_request": "您确定要删除此笔记吗?", "something_went_wrong": "出了点问题(这就是我所知道的)。", - "Aa": "Aa", + "text.reader_option_menu.font_size_lable": "Aa", "decrease_font_size": "减小字体大小", "increase_font_size": "增大字体大小", "this_comment": "此评论", @@ -512,74 +508,65 @@ "sheet.list_your_sheet": "将您的表单列在 Sefaria 以便他人发现。", "summary": "摘要", "write_short_description": "为您的表单编写简短的描述...", - "add_a_topic": "添加主题...", "publish": "发布", "unpublish": "取消发布", "topic.add_desription": "请添加描述和主题以发布您的表单。", "topic.add_topic_to_sheet": "请添加主题以发布您的表单。", "sheet.add_description": "请添加描述以发布您的表单。", - "summary_limit": "摘要描述限制为 280 个字符。", - "people_with_link": "拥有此链接的人可以", + "sheet.message.summary_limit": "摘要描述限制为 280 个字符。", + "connection_panel.people_with_link": "拥有此链接的人可以", "sheet.publish_sheet_on_pecha": "将您的表单发布在 Sefaria 以便他人发现。", - "about": "关于", - "view_sidebar": "在侧边栏中查看", - "merged_from": "合并自", - "source": "来源", - "digitization": "数字化", - "license": "许可证", - "revision_history": "修订历史", - "buy_in_print": "购买印刷版", - "buy_now": "立即购买", - "web_pages": "网页", - "send_msg_to": "发送消息给", - "save": "保存", - "save_and_history": "保存 & 历史", - "text_sheet_available_here": "您阅读的文本和表单将显示在此处。", + "common.about": "关于", + "text.version.merged_from": "合并自", + "connection_panel.menuscript.source": "来源", + "text.version.information.digitization": "数字化", + "connection_panel.license": "许可证", + "text.version.information.buy_in_print": "购买印刷版", + "text.version.information.buy_now": "立即购买", + "common.saves": "保存", + "common.save":"Save", + "bookmark.save_and_history": "保存 & 历史", + "user_history_panel.text_sheet_available_here": "您阅读的文本和表单将显示在此处。", "bookmark.message.click_icon": "点击文本或表单上的书签图标以保存到这里。", "text.new_text": "新文本", - "sent_message": "发给您一条消息", "sheet.publish_new_sheet": "发布了一张新表单", "sheet.liked_your_sheet": "喜欢了您的表单", - "is_following_you": "开始关注您", - "reply": "回复", + "notifcation.is_following_you": "开始关注您", "collection.add_you_to_collection": "已将您添加到收藏中", "message.enter_valid_email": "请输入有效的电子邮箱地址。", "message.subscribed": "已订阅!欢迎加入我们的名单。", "message.there_is_error": "抱歉,出现了错误。", - "connect": "连接", - "site_language": "网站语言", "message.thanks_for_trying_new_editor": "感谢您试用新编辑器!", "message.go_to_profile_to_create_new_sheet": "前往您的个人资料以创建新表单或编辑现有表单,试用新的体验。", - "back_to_profile": "返回个人资料", - "back_to_old_version": "返回旧版本", + "editor.back_to_profile": "返回个人资料", + "editor.back_to_old_version": "返回旧版本", "feedback.request_for_feedback": "反馈请求", "message._new_pecha_editor": "感谢您试用新的 Pecha 编辑器!我们很想听听您的想法。", "message.encounter_issue": "使用新编辑器时遇到任何问题了吗?例如:", - "technical_problem": "技术问题", + "message.technical_problem": "技术问题", "editor.difficulties_using_editor": "使用编辑器的困难", - "missing_feature": "缺失功能", + "message.missing_feature": "缺失功能", "tell_us_about": "告诉我们...", "feedback.submit": "提交反馈", - "thank_you": "谢谢!", - "try_new_version": "试用新版本", + "feedback.message.thank_you": "谢谢!", + "editor.message.try_new_version": "试用新版本", "feedback.message.response": "您的反馈非常感谢。", "file.message.error": "文件错误信息", - "add_picture": "添加图片", - "upload_new": "上传新图片", - "drag_corners_to_crop_images": "拖动角以裁剪图片", + "profile.picture.add_picture": "添加图片", + "profile.picture.upload_new": "上传新图片", + "profile.picture.drag_corners_to_crop_images": "拖动角以裁剪图片", "message.login_to_use_feature": "请登录以使用此功能。", "feedback.feedback_sent": "反馈已发送", "feedback.message.have_some_feeback": "有反馈吗?我们很想听听您的意见。", "message.cookies_msg": "我们使用 Cookie 为您提供最佳体验。点击确定继续使用 Pecha。", - "ok": "确定", + "common.ok": "确定", "community.message.previewing": "您正在预览社区页面", - "all_ready_exists": "已存在。", - "source_versions": "来源版本", - "alt_source_versions": "备用来源版本", + "common.all_ready_exists": "已存在。", + "text.version.source_versions": "来源版本", + "text.version.alt_source_versions": "备用来源版本", "sheet.loading_sheet": "加载表单中", - "add": "添加", - "save_and_next": "保存并下一个", - "setting_admin": "设置/管理员", + "sheet.catagorize.save_and_next": "保存并下一个", + "sheet.catagorize.setting_admin": "设置/管理员", "sheet.switch_finding_sheet": "切换到不包含", "sheet.skit_sheet": "跳过此表单", "sheet.message.sheet_will_save": "表单将不会保存", @@ -587,61 +574,57 @@ "message.change_field_before_saving": "请在保存前更改其中一个字段。", "category.parent_category": "父类别", "category.message.cannot_delete_content": "无法删除有内容的类别。", - "load_more": "加载更多", - "all": "全部", + "common.load_more": "加载更多", + "common.all": "全部", "message.success_created_new_connection": "成功!您已创建了新连接。", - "about_the_source": "关于此来源", + "connection_panel.about_the_source": "关于此来源", "note.go_to_my_note": "前往我的笔记", - "feedback": "反馈", - "advance": "高级", - "add_translation": "添加翻译", - "add_connection": "添加连接", + "connection_panel.tool_button.add_translation": "添加翻译", + "connection_panel.tool_button.add_connection": "添加连接", "text.edit_text": "编辑文本", "message.error_invalid_entry": "无效条目。请输入希伯来语词。", - "pecha_readings": "Pecha 阅读", - "manuscripts": "手稿", - "browse": "浏览", - "messange.we_only_understand_connection_betweeen_two_texts": "我们目前只理解两篇文本之间的连接", - "see_less": "查看较少", + "connection_panel.tool_button.pecha_readings": "Pecha 阅读", + "connection_panel.tool_button.manuscripts": "手稿", + "connection_panel.add_connection.browse": "浏览", + "message.we_only_understand_connection_betweeen_two_texts": "我们目前只理解两篇文本之间的连接", "topic.noknown_topic": "这里没有已知主题。", - "no_web_pages": "没有已知网页", - "from": "来自", - "here": "这里", + "connection_panel.web_list.no_web_pages": "没有已知网页", + "connection_panel.web_list.from": "来自", + "connection_panel.web_list.here": "这里", "sheet.message.do_not_support_adding_images_to_source_sheets": "我们目前不支持将图片添加到资源表单。", "sheet.button_connection_to_source": "点击查看与此资源的连接", "sheet.button_click_to_see": "点击查看", "sheet.connections_to_this_source": "与此资源的连接", "sheet.view_copy": "查看复制内容", "sheet.view_old_sheet_experience": "查看旧表单体验", - "ago": "前", - "created": "创建于", - "create": "Create", + "sheet.created_time.ago": "前", + "common.created": "创建于", + "common.create": "Create", "topic.topics_or_tags": "主题/标签", "topic_no_tags": "无标签", "sheet.new_category": "新类别", - "categories": "类别", - "print": "打印", - "divine_name": "神圣之名", + "sheet.categories": "类别", + "connection_panel.tool_button.divine_name": "神圣之名", "text.other_text": "其他文本", "connection.choose_text_to_connect": "选择要连接的文本", - "coutesy_of": "由...提供", - "select": "选择", + "connection_panel.menuscript.coutesy_of": "由...提供", + "common.select": "选择", "note.delete_note": "删除笔记", "sheet.your_sheet": "您的表单", "sheet.section_from": "{{sheetTitle}} 来自的章节", "sheet.has_been_added_to": "{{sheetTitle}} 已添加到", "sheet.message.login_before_add_source_sheet": "要将此资源添加到表单,请先登录", - "dictionaries": "字典", - "go_to_translation": "前往翻译", + "connection_panel.tool_button.dictionaries": "字典", + "text.text_column_banner.go_to_translation": "前往翻译", "note.add_note": "添加笔记", - "section": "章节", + "sheet.source_sheet.make_ref.section": "章节", "search.zero_result": "0 个结果。", "search.message.toggle_filter": "按回车键切换搜索过滤器", "search.message.toggle_list_of_books": "按回车键切换特定书籍列表", "search.more_results": "更多结果", "search.another_result": "另一个结果", "note.zero_notes": "0 笔记", - "zero_followers": "0 粉丝", - "zero_following": "0 关注" + "profile.zero_followers": "0 粉丝", + "profile.zero_following": "0 关注" } diff --git a/static/js/sefaria/localizationLanguage/english.json b/static/js/sefaria/localizationLanguage/english.json index 24f2bdfa13..2d1448df9a 100644 --- a/static/js/sefaria/localizationLanguage/english.json +++ b/static/js/sefaria/localizationLanguage/english.json @@ -1,113 +1,110 @@ { "text.reader_option_menu.layout": "Layout", - "loading": "Loading...", - "version": "Version", - "log_in": "Log in", - "sign_up": "Sign up", - "email": "Email Address", - "password": "Password", - "pecha": "pecha", - "edit": "Edit", + "common.loading": "Loading...", + "common.version": "Version", + "common.log_in": "Log in", + "common.sign_up": "Sign up", + "common.email": "Email Address", + "common.password": "Password", + "common.pecha": "pecha", + "common.edit": "Edit", + "connection_pannel.translation.description": "Pecha acquires translations to enrich your learning experience. Preview or choose a different translation below.", "connection_pannel.tool_btn.more": "More", "connection_pannel.tool_btn.less": "Less", - "translations": "Translations", - "collection_list.unlisted":"Unlisted", + "connection_pannel.translations": "Translations", + "collection.collection_list.unlisted":"Unlisted", "user.history":"History", + "common.read_more": "Read More", "text.verion_block.digitized_by_pecha":"Digitized by Pecha", "connection_pannel.menuscript_image.location":"Location: ", "text.translation_page.uncategorized":"Uncategorized", - "learn_more": "Learn More", + "common.learn_more": "Learn More", "community.sheets.recently_published": "Recently Published", "calender_page.weekly_torah_portion": "Weekly Torah Portion", "calender_page.weekly_learning":"Weekly Learning", "calender_page.daily_learning":"Daily Learning", - "mobile_apps": "Mobile Apps", - "help": "Help", - "on": "On", - "off": "Off", - "yes": "Yes", - "no": "No", - "close": "Close", - "button.submit": "Submit", - "button.save": "Save", - "button.cancel": "Cancel", - "button.add": "Add", - "button.send": "Send", - "filter_list.recent": "Recent", - "dropdown.filter":"Filter", - "filter_list.alphabetical": "Alphabetical", + "header.button.help": "Help", + "common.on": "On", + "common.off": "Off", + "common.yes": "Yes", + "common.no": "No", + "common.close": "Close", + "common.button.submit": "Submit", + "common.button.save": "Save", + "common.button.cancel": "Cancel", + "common.button.add": "Add", + "common.button.send": "Send", + "common.filter_list.recent": "Recent", + "common.filter_list.name": "Name", + "common.dropdown.filter":"Filter", + "collection.filter_list.alphabetical": "Alphabetical", "filter_list.relevance": "Relevance", "filter_list.chronological": "Chronological", "header.notifications":"Notifications", "header.menu": "Menu", - "like":"Like", - "unlike":"Unlike", + "common.like":"Like", + "common.unlike":"Unlike", "url.param.history_title": " & {{title}}", "url.param.moderator_tools":"Moderator Tools", "url.param.with":" with ", "url.title_descriptions": "Pecha - Buddhism in your own words", "url.topic.descriptions": "Explore Jewish Texts by Topic - {{navigationTopicLetter}} | {{siteName}}", - "copy": "Copy", + "connection_panel.copy": "Copy", "sheet.editor.view_in_editor": "View In Editor", - "copied": "Copied", - "copying": "Copying...", - "delete": "Delete", + "connection_panel.copying": "Copying...", + "sheet.sheet_list.delete": "Delete", "topic.read_the_portion":"Read the Portion", "note.my_note":"My Note", - "update":"Update", - "create_new": "Create New", - "publish_setting": "Publish Settings", + "side_nav.updates":"Updates", + "sheet.create_new": "Create New", + "sheet.publish_setting": "Publish Settings", "published":"Publish Settings", - "color":"Color", - "font_size":"Font Size", - "punctuation":"Punctuation", - "show_punchuation":"Show Punctuation", - "hide_punchuation":"Hide Punctuation", - "show_vowels":"Show Vowels and Cantillation", - "vocalization":"Vocalization", - "vowels":"Vowels", - "show_only_vowels":"Show only vowel points", - "show_only_consonenetal_text":"Show only consonantal text", + "text.reader_option_menu.color":"Color", + "text.reader_option_menu.font_size":"Font Size", + "text.reader_option_menu.punctuation":"Punctuation", + "text.reader_option_menu.show_puntuation":"Show Punctuation", + "text.reader_option_menu.hide_puntuation":"Hide Punctuation", + "text.reader_option_menu.show_vowels":"Show Vowels and Cantillation", + "text.reader_option_menu.vocalization":"Vocalization", + "text.reader_option_menu.vowels":"Vowels", + "text.reader_option_menu.show_only_vowels":"Show only vowel points", + "text.reader_option_menu.show_only_consonenetal_text":"Show only consonantal text", "feedback.describe_issue":"Describe the issue...", "feedback.report_issue":"Report an issue with the text", "feedback.request_translation":"Request translation", "feedback.report_bug":"Report a bug", "feedback.get_help":"Get help", - "get_newsletter":"Get the Newsletter", - "signup_to_get_updates":"Sign up to get updates", "feedback.request_feature":"Request a feature", "feedback.give_thanks":"Give thanks", "feedback.other":"Other", "feedback.please_select_type":"Please select a feedback type", "feedback.message.error_sending_feedback":"Unfortunately, there was an error sending this feedback. Please try again or try reloading this page.", - "tell_what_you_think":"Tell us what you think...", - "select_type":"Select Type", - "added_by":"Added by", - "love_learning":"Love Learning?", - "signup_to_get_more_from_pecha":"Sign up to get more from Sefaria", + "common.select_type":"Select Type", + "sheet.source_sheet.added_by":"Added by", + "modal.sign_up.love_learning":"Love Learning?", + "modal.sign_up.signup_to_get_more_from_pecha":"Sign up to get more from Sefaria", "sheet.make_source_sheet":"Make source sheets", "note.take_note":"Take notes", - "notes": "Notes", + "user_profile.notes": "Notes", "text.save_text":"Save texts", - "stay_in_the_know":"Stay in the know", - "remove":"Remove", + "modal.sign_up.stay_in_the_know":"Stay in the know", + "collection.remove":"Remove", "message.email_successfully_changed":"Email was successfully changed!", - "setting_saved":"Settings Saved", "message.warning_delete_reading_history":"Turning this feature off will permanently delete your reading history.", - "export.google_doc":"Export to Google Docs", - "export.complete":"Export Complete", - "export.open_google":"Open in Google", - "follow":"Follow" , - "unfollow":"Unfollow", - "follow_back":"Follow Back", - "followers": "Followers", - "following": "Following", - "follow_author":"Follow your favorite authors", - "share": "Share", - "share_link": "Share Link", - "share_on_fb":"Share on Facebook", - "share_on_x":"Share on Twitter", - "share_by_email":"Share by Email", + "common.export.google_doc":"Export to Google Docs", + "common.exporting.google_doc":"Exporting to Google Docs...", + "common.export.complete":"Export Complete", + "common.export.open_google":"Open in Google", + "common.follow":"Follow" , + "common.unfollow":"Unfollow", + "common.follow_back":"Follow Back", + "common.followers": "Followers", + "common.following": "Following", + "common.share": "Share", + "common.share_link": "Share Link", + "common.share_on_fb":"Share on Facebook", + "common.share_on_x":"Share on Twitter", + "common.share_by_email":"Share by Email", "bilingual":"Bilingual", "english": "English", "tibetan": "Tibetan", @@ -126,19 +123,19 @@ "persian": "Persian", "ladino": "Ladino", "chinese": "Chinese", - "bilingual_layout": "Bilingual Layout", + "text.reader_option_menu.bilingual_layout": "Bilingual Layout", "search_page.results_for": "Results for: ( {{searchedItem}} )", - "results": "Results", - "options": "Options", - "search_texts": "Search Texts", - "search_in_this_text": "Search in this Text", - "search": "Search", - "searching": "Searching...", - "search_topic": "Search Topics", - "exact_matches_only": "Exact Matches Only", - "searching_for_topic": "Search for a Topic.", - "search_dictionary":"Search Dictionary", - "search_for":"Search for", + "search_page.results": "Results", + "common.options": "Options", + "common.collection.btn.create_new_collection": "Create a New Collection", + "connection_panel.search_in_this_text": "Search in this Text", + "common.placeholder.search": "Search", + "search.result_list.searching": "Searching...", + "topic.search_topics": "Search Topics", + "search_filter.exact_matches_only": "Exact Matches Only", + "search.topic.searching_for_topic": "Search for a Topic.", + "connection_panel.search_dictionary":"Search Dictionary", + "header.search_bar.search_for":"Search for", "search_text_or_keywords":"Search for Texts or Keywords Here", "bookmark.icon_description": "Click the bookmark icon on texts or sheets to save them here.", "sign_up.form.first_name": "First Name", @@ -197,9 +194,9 @@ "setting.change_email": "Change Email", "setting.google_disconnected": "Your Google Account has been disconnected", "setting.link_to_google": "You can link to a new Google Account the next time you export a sheet", - "category.admin.editor": "Category Editor", - "category.admin.tibetan_title": "Tibetan Title", - "category.admin.english_title": "Title", + "admin.editor": "Category Editor", + "admin.tibetan_title": "Tibetan Title", + "admin.english_title": "Title", "text.admin.prefferred_translation":"Preferred Translation", "text.admin.text_title":"Text Title", "text.admin.bo_title":"Tibetan Title", @@ -212,7 +209,7 @@ "text.chapter": "Chapter", "text.versions": "Versions", "text.versions.source": "Source", - "text.versions.review_history": "Revision History", + "text.versions.information.review_history": "Revision History", "text.versions.in_progress": "In Progress", "text.versions.done": "Done", "text.download": "Download", @@ -255,13 +252,12 @@ "text.all_commentary": "All Commentary", "text.show_all_commnentaries": "Show all commentaries", "text.topic_connected_to": "This topic is connected to", - "panel.tools": "Tools", - "panel.more_options": "More Options", - "panel.notes": "Notes", - "panel.share": "More Options", - "panel.compare_text": "Compare Text", - "panel.feed_back": "Feed Back", - "panel.advance": "Advance", + "connection_panel.tools": "Tools", + "connection_panel.more_options": "More Options", + "connection_panel.notes": "Notes", + "connection_panel.compare_text": "Compare Text", + "connection_panel.feed_back": "Feed Back", + "connection_panel.advance": "Advance", "text.write_note": "Write a note...", "text.add_note": "Add note", "text.go_to_my_notes": "Go to My Notes", @@ -309,7 +305,7 @@ "side_nav.stay_connected.decription":"Get updates on new texts, learning resources, features, and more.", "side_nav.make_donation": "Make a Donation", "sheet.new_source_sheet": "New Source Sheet", - "sheets":"Sheets", + "common.sheets":"Sheets", "sheet.source_sheet": "Source Sheet", "sheet.about_this_sheet":"About this Sheet", "sheet.source": "Source", @@ -323,11 +319,8 @@ "sheet.add_this_source_to_Source_Sheet": "Add this source to a Source Sheet", "sheet.add_to_sheet": "Add to Sheet", "sheet.add_to": "Add to", - "sheet.this_source_was_added_to": "This source was added to", - "sheet.ok": "ok", "sheet.write_or_past_text": "WRITE OR PASTE TEXT", "sheet.add_media_link": "ADD IMAGE, YOUTUBE VIDEO, SOUNCLOUD LINK, OR MP3", - "sheet.past_url": "Paste URL", "sheet.upload_image": "Upload an Image", "sheet.upload_image_failed_msg": "Could not add image. Please make sure that the file you attempted to upload is a JPEG, PNG or GIF.", "sheet.section_comment": "COMMENT ON THIS SECTION", @@ -353,9 +346,7 @@ "sheet.write_summary": "Write a summary to help others understand your sheet...", "sheet.add_tags": "Add Tags...", "sheet.list_on_pecha": "List on Pecha", - "sheet.yes": "Yes", "sheet.any_one_can_access": "Anyone with access can", - "sheet.file": "File", "sheet.copy_sheet": "Copy Sheet", "sheet.export_to_google": "Export to Google Drive", "sheet.delete_sheet": "Delete Sheet", @@ -459,12 +450,13 @@ "topic.about_description": "Topics Pages present a curated selection of various genres of sources on thousands of chosen subjects. You can browse by category, search for something specific, or view the most popular topics — and related topics — on the sidebar. Explore and click through to learn more.", "topic.trend": "Trending Topics", "topic.combine_source": "Combine sources from our library with your own comments, questions, images, and videos.", - "add_topic":"Add Topic", - "create_new_topic":"Create a new topic: ", + "sheet.placeholder.add_topic":"Add Topic", + "topic.create_new_topic":"Create a new topic: ", "enter_source_ref":"Enter Source Ref (for example: 'Yevamot.62b.9-11' or 'Yevamot 62b:9-11')", - "category.add_sub_category":"Add sub-category", - "category.add_source": "Add a source", - "category.add_section": "Add section", + "category.admin.add_sub_category":"Add sub-category", + "category.admin.add_source": "Add a source", + "category.admin.add_section": "Add section", + "category.admin.edit": "Edit", "category.reorder_section": "Reorder sources", "reorder_source":"Reorder sources", "topic.all_topics":"All Topics", @@ -494,7 +486,7 @@ "note_save_error_try_again":"Unfortunately, there was an error saving this note. Please try again or try reloading this page.", "note_confirm_delete_request":"Are you sure you want to delete this note?", "something_went_wrong":"Something went wrong (that's all I know).", - "Aa": "Aa", + "text.reader_option_menu.font_size_lable": "Aa", "decrease_font_size":"Decrease font size", "increase_font_size":"Increase font size", "this_comment":"this comment", @@ -517,74 +509,65 @@ "sheet.list_your_sheet":"List your sheet on Sefaria for others to discover.", "summary":"Summary", "write_short_description":"Write a short description of your sheet...", - "add_a_topic":"Add a topic...", "publish":"Publish", "unpublish":"Unpublish", "topic.add_desription":"Please add a description and topics to publish your sheet.", "topic.add_topic_to_sheet":"Please add topics to publish your sheet.", "sheet.add_description":"Please add a description to publish your sheet.", - "summary_limit":"The summary description is limited to 280 characters.", - "people_with_link":"People with this link can", + "sheet.message.summary_limit":"The summary description is limited to 280 characters.", + "connection_panel.people_with_link":"People with this link can", "sheet.publish_sheet_on_pecha":"Publish your sheet on Sefaria for others to discover.", - "about":"About", - "view_sidebar":"View in Sidebar", - "merged_from":"Merged from", - "source":"Source", - "digitization":"Digitization", - "license":"License", - "revision_history":"Revision History", - "buy_in_print":"Buy in Print", - "buy_now":"Buy Now", - "web_pages":"Web Pages", - "send_msg_to":"Send a message to ", - "save":"Saved", - "save_and_history": "Saved & History", - "text_sheet_available_here":"Texts and sheets that you read will be available for you to see here.", + "common.about":"About", + "text.version.merged_from":"Merged from", + "connection_panel.menuscript.source":"Source", + "text.version.information.digitization":"Digitization", + "connection_panel.license":"License", + "text.version.information.buy_in_print":"Buy in Print", + "text.version.information.buy_now":"Buy Now", + "common.saves":"Saves", + "common.save":"Save", + "bookmark.save_and_history": "Saved & History", + "user_history_panel.text_sheet_available_here":"Texts and sheets that you read will be available for you to see here.", "bookmark.message.click_icon":"Click the bookmark icon on texts or sheets to save them here.", "text.new_text":"New Text", - "sent_message":"sent you a message", "sheet.publish_new_sheet":"published a new sheet", "sheet.liked_your_sheet":"liked your sheet", - "is_following_you":"is now following you", - "reply":"Reply", + "notifcation.is_following_you":"is now following you", "collection.add_you_to_collection":"added you to a collection", "message.enter_valid_email":"Please enter a valid email address.", "message.subscribed":"Subscribed! Welcome to our list.", "message.there_is_error":"Sorry, there was an error.", - "connect":"Connect", - "site_language":"Site Language", "message.thanks_for_trying_new_editor":"Thanks for Trying the New Editor!", "message.go_to_profile_to_create_new_sheet":"Go to your profile to create a new sheet, or edit an existing sheet, to try out the new experience. After you’ve had a chance to try it out, we would love to hear your feedback. You can reach us at", - "back_to_profile":"Back to Profile", - "back_to_old_version":"Go back to old version", + "editor.back_to_profile":"Back to Profile", + "editor.back_to_old_version":"Go back to old version", "feedback.request_for_feedback":"Request for Feedback", "message._new_pecha_editor":"Thank you for trying the new Pecha editor! We’d love to hear what you thought. Please take a few minutes to give us feedback on your experience.", "message.encounter_issue":"Did you encounter any issues while using the new editor? For example:", - "technical_problem":"Technical problems", + "message.technical_problem":"Technical problems", "editor.difficulties_using_editor":"Difficulties using the editor", - "missing_feature":"Missing features", - "tell_us_about":"Tell us about it...", + "message.missing_feature":"Missing features", + "feedback.message.tell_us_about":"Tell us about it...", "feedback.submit":"Submit Feedback", - "thank_you":"Thank you!", - "try_new_version":"Try the new version", + "feedback.message.thank_you":"Thank you!", + "editor.message.try_new_version":"Try the new version", "feedback.message.response":"Your feedback is greatly appreciated. You can now edit your sheets again using the old source sheet editor. If you have any questions or additional feedback you can reach us at", "file.message.error":"file_error_message", - "add_picture":"Add Picture", - "upload_new":"Upload New", - "drag_corners_to_crop_images":"Drag corners to crop image", + "profile.picture.add_picture":"Add Picture", + "profile.picture.upload_new":"Upload New", + "profile.picture.drag_corners_to_crop_images":"Drag corners to crop image", "message.login_to_use_feature":"Please log in to use this feature.", "feedback.feedback_sent":"Feedback sent", "feedback.message.have_some_feeback":"Have some feedback? We would love to hear it.", "message.cookies_msg":"We use cookies to give you the best experience possible on our site. Click OK to continue using Pecha.", - "ok":"OK", + "common.ok":"OK", "community.message.previewing":"You are previewing the Community page for", - "all_ready_exists":" already exists.", - "source_versions":"Source Versions", - "alt_source_versions":"Alternate Source Versions", + "common.all_ready_exists":" already exists.", + "text.version.source_versions":"Source Versions", + "text.version.alt_source_versions":"Alternate Source Versions", "sheet.loading_sheet":"Loading your sheets", - "add":"Add", - "save_and_next":"Save and Next", - "setting_admin":"Settings/Admin", + "sheet.catagorize.save_and_next":"Save and Next", + "sheet.catagorize.setting_admin":"Settings/Admin", "sheet.switch_finding_sheet":"Switch to finding sheets without", "sheet.skit_sheet":"Skip this sheet", "sheet.message.sheet_will_save":"Sheet will not be saved", @@ -592,59 +575,56 @@ "message.change_field_before_saving":"Please change one of the fields before saving.", "category.parent_category":"Parent Category", "category.message.cannot_delete_content":"Cannot delete a category with contents.", - "load_more":"Load More", - "all":"All", + "common.load_more":"Load More", + "common.all":"All", "message.success_created_new_connection":"Success! You've created a new connection.", - "about_the_source":"About this Source", + "connection_panel.about_the_source":"About this Source", "note.go_to_my_note":"Go to My Notes", - "feedback":"Feedback", - "advance":"Advanced", - "add_translation":"Add Translation", - "add_connection":"Add Connection", + "connection_panel.tool_button.add_translation":"Add Translation", + "connection_panel.tool_button.add_connection":"Add Connection", "text.edit_text":"Edit Text", "message.error_invalid_entry":"Invalid entry. Please type a Hebrew word.", - "pecha_readings":"Pecha Readings", - "manuscripts":"Manuscripts", - "browse":"Browse", - "messange.we_only_understand_connection_betweeen_two_texts":"We currently only understand connections between two texts", - "see_less":"See Less", + "connection_panel.tool_button.pecha_readings":"Pecha Readings", + "connection_panel.tool_button.manuscripts":"Manuscripts", + "connection_panel.add_connection.browse":"Browse", + "message.we_only_understand_connection_betweeen_two_texts":"We currently only understand connections between two texts", "topic.noknown_topic":"No known Topics Here.", - "no_web_pages":"No web pages known", - "from":"from", - "here":"here", + "connection_panel.web_list.no_web_pages":"No web pages known", + "connection_panel.web_list.from":"from", + "connection_panel.web_list.here":"here", "sheet.message.do_not_support_adding_images_to_source_sheets":"We do not currently support adding images to source sheets.", "sheet.button_connection_to_source":"Click to see connections to this source", "sheet.button_click_to_see":"Click to see", "sheet.connections_to_this_source":"connections to this source", "sheet.view_copy":"View Copy", "sheet.view_old_sheet_experience":"View in the old sheets experience", - "ago":"ago", - "created":"Created", + "sheet.created_time.ago":"ago", + "common.created":"Created", + "common.create": "Create", "topic.topics_or_tags":"Topics/Tags", "topic_no_tags":"No Tags", "sheet.new_category":"New Category", - "categories":"Categories", - "print":"Print", - "divine_name":"Divine Name", + "sheet.categories":"Categories", + "connection_panel.tool_button.divine_name":"Divine Name", "text.other_text":"Other Text", "connection.choose_text_to_connect":"Choose a text to connect", - "coutesy_of":"Courtesy of", - "select":"Select", + "connection_panel.menuscript.coutesy_of":"Courtesy of", + "common.select":"Select", "note.delete_note":"Delete Note", "sheet.your_sheet":"Your Sheet", "sheet.section_from":"Section from {{sheetTitle}}", "sheet.has_been_added_to":"has been added to {{sheetTitle}}", "sheet.message.login_before_add_source_sheet":"In order to add this source to a sheet, please", - "dictionaries":"Dictionaries", - "go_to_translation":"Go to translations", + "connection_panel.tool_button.dictionaries":"Dictionaries", + "text.text_column_banner.go_to_translation":"Go to translations", "note.add_note":"Add Note", - "section":"Section", + "sheet.source_sheet.make_ref.section":"Section", "search.zero_result":"0 results.", "search.message.toggle_filter":"Press enter to toggle search filter for ", "search.message.toggle_list_of_books":"Press enter to toggle the list of specific books within ", "search.more_results":"moreResults", "search.another_result":"anotherResult", "note.zero_notes":"0 Notes", - "zero_followers":"0 followers", - "zero_following":"0 following" + "profile.zero_followers":"0 followers", + "profile.zero_following":"0 following" } \ No newline at end of file diff --git a/static/js/sefaria/localizationLanguage/tibetan.json b/static/js/sefaria/localizationLanguage/tibetan.json index 0d6ea3ace7..0eac7e9e8b 100644 --- a/static/js/sefaria/localizationLanguage/tibetan.json +++ b/static/js/sefaria/localizationLanguage/tibetan.json @@ -1,40 +1,43 @@ { "text.reader_option_menu.layout": "ཁྱད་ཆོས།", - "loading": "ལེན་བཞིན་པ་་་", - "version": "འགྱུར་མའམ་དཔེ་རྒྱུན།", - "log_in": "ནང་འཛུལ།", - "sign_up": "ཐོ་འགོད་གྱིས།", - "email": "གློག་འཕྲིན།", - "password": "གསང་ཚིག", - "pecha": "དཔེ་ཆ་དྲ་ཆིགས།", - "edit": "རྩོམ་སྒྲིག", + "common.loading": "ལེན་བཞིན་པ་་་", + "common.version": "འགྱུར་མའམ་དཔེ་རྒྱུན།", + "common.log_in": "ནང་འཛུལ།", + "common.sign_up": "ཐོ་འགོད་གྱིས།", + "common.email": "གློག་འཕྲིན།", + "common.password": "གསང་ཚིག", + "common.pecha": "དཔེ་ཆ་དྲ་ཆིགས།", + "common.edit": "རྩོམ་སྒྲིག", + "connection_pannel.translation.description": "དཔེ་ཆ་དྲ་ཚིག་གིས་འགྱུར་མ་ཁག་བཟོས་ཏེ་སྦྱོང་ཡག་ལ་རོག་རམ་བྱེད་ཐུབ་ གཤམ་འོག་ལ་སྐད་ཡིག་གཞན་འདེམ་རོགས་།", "connection_pannel.tool_btn.more": "འདི་ལས་མང་བ།", "connection_pannel.tool_btn.less": "འདི་ལས་ཉུང་བ།", - "translations": "འགྱུར་མ།", - "collection_list.unlisted": "ཐོ་རུ་བཀོད་མེད་པ།", + "connection_pannel.translations": "འགྱུར་མ།", + "collection.collection_list.unlisted": "ཐོ་རུ་བཀོད་མེད་པ།", "user.history":"མཚམས་རྟགས་ལོ་རྒྱུས།", + "common.read_more": "མང་ཙམ་ཀློགས།", "text.verion_block.digitized_by_pecha":"དཔེ་ཆ་དྲ་ཆིགས་ཀྱིས་ཨང་བསྒྱུར་བྱས་པ།", "connection_pannel.menuscript_image.location.location":"ས་གནས་ནི་", "text.translation_page.uncategorized":"རིགས་དབྱེ་བྱས་མེད་པ།", - "learn_more": "གནས་ཚུལ་རྒྱས་པར་གཟིགས།", + "common.learn_more": "གནས་ཚུལ་རྒྱས་པར་གཟིགས།", "community.sheets.recently_published": "ཉེ་ཆར་གྱི་ཟིན་བྲིས།", "calender_page.weekly_torah_portion": "བདུན་རེའི་སྦྱོང་བྱ།", "calender_page.weekly_learning":"Weekly Learning", "calender_page.daily_learning":"Daily Learning", - "mobile_apps": "ཁ་པར་མཉེན་ཆས་ཁག", - "on": "ཉར།", - "off": "མི་ཉར།", - "yes": "འགྲིག", - "no": "འགྲིག་མ་སོང་།", - "close": "སྒོ་རྒྱག", - "button.submit": "བསམ་འཆར་བསྐུར་གནང་།", - "button.save": "ཉར་ཚགས།", - "button.cancel": "ཕྱིར་འཐེན།", - "button.add": "སྣོན་པ་བཏབ་ཆོག།", - "button.send": "གཏོང་།", - "filter_list.recent": "ཉེ་ཆར།", - "dropdown.filter":"གོ་རིམ།", - "filter_list.alphabetical": "ཀ ནས་ ཨ བར།", + "header.button.help": "Help", + "common.on": "ཉར།", + "common.off": "མི་ཉར།", + "common.yes": "འགྲིག", + "common.no": "འགྲིག་མ་སོང་།", + "common.close": "སྒོ་རྒྱག", + "common.button.submit": "བསམ་འཆར་བསྐུར་གནང་།", + "common.button.save": "ཉར་ཚགས།", + "common.button.cancel": "ཕྱིར་འཐེན།", + "common.button.add": "སྣོན་པ་བཏབ་ཆོག།", + "common.button.send": "གཏོང་།", + "common.filter_list.recent": "ཉེ་ཆར།", + "common.filter_list.name": "མིང་།", + "common.dropdown.filter":"གོ་རིམ།", + "collection.filter_list.alphabetical": "ཀ ནས་ ཨ བར།", "filter_list.relevance": "མཐུན་ཤོས།", "filter_list.chronological": "མ་ཡིག་བྱུང་དུས།", "header.notifications":"གསར་བརྡ་ཁག", @@ -45,33 +48,32 @@ "url.param.moderator_tools":"སྟངས་འཛིན་ལག་ཆ་རྣམས།", "url.param.with":"མཉམ་དུ་", "url.title_descriptions": "Pecha - Buddhism in your own words", - "url.topic.descriptions": "Explore Jewish Texts by Topic - {{navigationTopicLetter}} | {{siteName}}", - "copy": "ངོ་བཤུ།", + "url.topic.descriptions": "Explore Buddhist Texts by Topic - {{navigationTopicLetter}} | {{siteName}}", + "connection_panel.copy": "ངོ་བཤུ།", "view_in_editor": "རྩོམ་སྒྲིག་སྟེགས་བུའི་ནང་སྟོན།", - "copied": "ངོ་བཤུ་བྱས་ཟིན།", - "copying": "ངོ་བཤུ་བྱེད་བཞིན་པ་་་", - "delete": "སུབ།", + "connection_panel.copying": "ངོ་བཤུ་བྱེད་བཞིན་པ་་་", + "sheet.sheet_list.delete": "སུབ།", "topic.read_the_portion":"ཆ་ཤས་དེ་ཀློག", "note.my_notenote.my_note":"ངའི་ཟུར་མཆན།", - "update":"རིམ་སྤར།", - "create_new": "གསར་པ་བཟོ།", - "publish_setting": "སྤེལ་གྱི་སྒྲིག་འགོད།", - "color":"ཚོན་མདོག", - "font_size":"ཡིག་གཟུགས་ཆེ་ཆུང་།", - "punctuation":"ཚེག་ཤད།", - "show_punchuation":"ཚེག་ཤད་སྟོན།", - "hide_punchuation":"ཚེག་ཤད་སྐུང་།", - "show_vowels":"དབྱངས་ཡིག་དང་དབྱངས་རྟགས་སྟོན།", - "vocalization":"ངག", - "vowels": "དབྱངས་ཡིག", - "show_only_vowels":"དབྱངས་ཡིག་གི་རྟགས་ཁོ་ན་སྟོན།", - "show_only_consonenetal_text":"གསལ་བྱེད་ཀྱི་ཡི་གེ་ཁོ་ན་སྟོན།", + "side_nav.updates":"རིམ་སྤར།", + "sheet.create_new": "གསར་པ་བཟོ།", + "sheet.publish_setting": "སྤེལ་གྱི་སྒྲིག་འགོད།", + "sheet.published": "", + "text.reader_option_menu.color":"ཚོན་མདོག", + "text.reader_option_menu.font_size":"ཡིག་གཟུགས་ཆེ་ཆུང་།", + "text.reader_option_menu.punctuation":"ཚེག་ཤད།", + "text.reader_option_menu.show_puntuation":"ཚེག་ཤད་སྟོན།", + "text.reader_option_menu.hide_puntuation":"ཚེག་ཤད་སྐུང་།", + "text.reader_option_menu.show_vowels":"དབྱངས་ཡིག་དང་དབྱངས་རྟགས་སྟོན།", + "text.reader_option_menu.vocalization":"ངག", + "text.reader_option_menu.vowels": "དབྱངས་ཡིག", + "text.reader_option_menu.show_only_vowels":"དབྱངས་ཡིག་གི་རྟགས་ཁོ་ན་སྟོན།", + "text.reader_option_menu.show_only_consonenetal_text":"གསལ་བྱེད་ཀྱི་ཡི་གེ་ཁོ་ན་སྟོན།", "feedback.describe_issue":"དཀའ་རྙོག་གམ་བསམ་འཆར་འབྲི་ས།", "feedback.report_issue":"དཔེ་དེབ་འདི་དང་འབྲེལ་བ།", "feedback.request_translation":"འགྱུར་མ་ཞིག་མངགས་རྒྱུ།", "feedback.report_bug":"ནོར་སྐྱོན་རིགས།", "feedback.get_help":"རོགས་པ་དགོས་མཁོ།", - "help": "རམ་འདེགས།", "get_newsletter": "གསར་འཕྲིན་རྣམས་འབྱོར་བ།", "signup_to_get_updates":"རིམ་སྤར་ཐོབ་པ་ལ་ཞུགས་ཐོ་གསར་འགོད་བྱོས།", "feedback.request_feature":"མཉེན་ཆས་ཀྱི་བྱེད་ནུས་གསར་པ་དགོས་མཁོ།", @@ -79,34 +81,32 @@ "feedback.other":"གནས་ཚུལ་གཞན།", "feedback.please_select_type":"བསམ་འཆར་གྱི་རིགས་ཤིག་འདེམ་རོགས།", "feedback.message.error_sending_feedback":"སྟབས་མ་ལེགས་པ་ཞིག་ལ་བསམ་འཆར་འདི་གཏོང་བ་ལ་གནད་དོན་ཞིག་བྱུང་སོང་། ཤོག་ངོས་འདི་བསྐྱར་ལེན་ནམ་ཡང་ན་བསྐྱར་དུ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།", - "tell_what_you_think":"ང་ཚོར་ཁྱེད་ཀྱི་བསམ་ཚུལ་གང་ཡིན་གསུང་རོགས།", - "select_type":"རིགས་དབྱེ།", - "added_by":"ཡིས་བསྣན་འདུག", - "love_learning":"སློབ་གཉེར་ལ་དགའ་བོ་ཡོད་དམ།", - "signup_to_get_more_from_pecha":"དཔེ་ཆ་དྲ་ཐོག་དཔེ་མཛོད་ནས་འདི་ལས་མང་བ་ཐོབ་པ་ལ་ཞུགས་ཐོ་གསར་འགོད་བྱོས།", + "common.select_type":"རིགས་དབྱེ།", + "sheet.source_sheet.added_by":"ཡིས་བསྣན་འདུག", + "modal.sign_up.love_learning":"སློབ་གཉེར་ལ་དགའ་བོ་ཡོད་དམ།", + "modal.sign_up.signup_to_get_more_from_pecha":"དཔེ་ཆ་དྲ་ཐོག་དཔེ་མཛོད་ནས་འདི་ལས་མང་བ་ཐོབ་པ་ལ་ཞུགས་ཐོ་གསར་འགོད་བྱོས།", "sheet.make_source_sheet":"མ་ཕྱིའི་ཤོག་ངོས་བཟོས།", "note.take_note":"མཆན་འགོད་པ།", - "notes": "མཆན་འགོད་ས", + "user_profile.notes": "མཆན་འགོད་ས", "text.save_text":"ཉེར་མཁོའི་ཡིག་ཆ་ཉར་ཚགས།", - "stay_in_the_know":"ཤེས་བཞིན་དུ་ནི་གནས་པར་གྱིས།", - "remove":"བསུབ།", + "modal.sign_up.stay_in_the_know":"ཤེས་བཞིན་དུ་ནི་གནས་པར་གྱིས།", + "collection.remove":"བསུབ།", "message.email_successfully_changed":"གློག་འཕྲིན་བརྗེ་བསྒྱུར་ལེགས་པར་གྲུབ་སོང་།", - "setting_saved":"སྒྲིག་འགོད་ཁག་ཉར་ཚགས་བྱས་ཡོད།", "message.warning_delete_reading_history":"ཁྱད་ཆོས་འདི་སྒོ་བརྒྱབ་ན་ཁྱེད་ཀྱི་དཔེ་ཀློག་གི་ལོ་རྒྱུས་རྣམས་གཏན་དུ་སུབ་འགྲོ་བ་ཡིན།", - "export.google_doc":"གུ་གུལ་ཡིག་ཆའི་ནང་དུ་ཕྱིར་འདོན་བྱེད་པ།", - "export.complete":"ཕྱིར་གཏོང་གི་ལས་དོན་ཡོངས་སུ་གྲུབ།", - "export.open_google":"གུ་གུལ་ནས་འབྱེད།", - "follow":"རྗེས་འཇུག་བྱོས།" , - "unfollow":"རྗེས་འཇུག་ཕྱིར་འཐེན།", - "follow_back":"བསྐྱར་དུ་རྗེས་འཇུག་བྱེད།", - "followers": "རྗེས་འཇུག་པ།", - "following": "རྗེས་འཇུག་བྱེད་བཞིན་པ།", - "follow_author":"ཁྱེད་ཀྱི་དགའ་མོས་ཆེ་ཤོས་ཀྱི་རྩོམ་པ་པོ་ལ་རྗེས་འཇུག་བྱོས།", - "share": "བརྒྱུད་སྐུར་གྱིས།", - "share_link": "བརྒྱུད་བསྐུར་བྱེད་ས།", - "share_on_fb":"ངོ་དེབ་ལ་བརྒྱུད་བསྐུར་གྱིས།", - "share_on_x":"Twitter ཐོག་ནས་མཉམ་སྤྱོད་བྱེད།", - "share_by_email":"གློག་ཕྲིན་ནས་བརྒྱུད་བསྐུར་གྱིས།", + "common.export.google_doc":"གུ་གུལ་ཡིག་ཆའི་ནང་དུ་ཕྱིར་འདོན་བྱེད་པ།", + "common.exporting.google_doc":"Export to Google Docs", + "common.export.complete":"ཕྱིར་གཏོང་གི་ལས་དོན་ཡོངས་སུ་གྲུབ།", + "common.export.open_google":"གུ་གུལ་ནས་འབྱེད།", + "common.follow":"རྗེས་འཇུག་བྱོས།" , + "common.unfollow":"རྗེས་འཇུག་ཕྱིར་འཐེན།", + "common.follow_back":"བསྐྱར་དུ་རྗེས་འཇུག་བྱེད།", + "common.followers": "རྗེས་འཇུག་པ།", + "common.following": "རྗེས་འཇུག་བྱེད་བཞིན་པ།", + "common.share": "བརྒྱུད་སྐུར་གྱིས།", + "common.share_link": "བརྒྱུད་བསྐུར་བྱེད་ས།", + "common.share_on_fb":"ངོ་དེབ་ལ་བརྒྱུད་བསྐུར་གྱིས།", + "common.share_on_x":"Twitter ཐོག་ནས་མཉམ་སྤྱོད་བྱེད།", + "common.share_by_email":"གློག་ཕྲིན་ནས་བརྒྱུད་བསྐུར་གྱིས།", "bilingual":"སྐད་གཉིས་ཤན་སྦྱར།", "english": "ཨིན་ཇི།", "tibetan": "བོད་ཡིག", @@ -125,19 +125,19 @@ "persian": "ཕར་ཞི་ཡན་གྱི་སྐད་ཡིག", "ladino": "ལ་དྷི་ནོའི་སྐད་ཡིག", "chinese": "རྒྱ་ཡིག", - "bilingual_layout": "སྐད་གཉིས་ཤན་སྦྱར་།", + "text.reader_option_menu.bilingual_layout": "སྐད་གཉིས་ཤན་སྦྱར་།", "search_page.results_for": "འདིའི་གྲུབ་འབྲས་ཁག: ( {{searchedItem}} )", - "results": "གྲུབ་འབྲས་རྣམས།", - "options": "བདམ་གསེས།", - "search_texts": "ཁ་བྱང་ལྟར་བཙལ་འབྲས་འདེམ་སྒྲུག།", - "search_in_this_text": "ཡིག་ཆ་འདིར་འཚོལ།", - "search": "འཚོལ་ས།", - "searching":"འཚོལ་བཞིན་པ་་་", - "search_topic": "བརྗོད་གཞི་ལྟར་བཙལ་འབྲས་འདེམ་སྒྲུག།", - "exact_matches_only": "ཚིག་འདི་ཁོ་ན་འཚོལ།", - "searching_for_topic": "བརྗོད་གཞི་ཞིག་ཚོལ།", - "search_dictionary":"ཚིག་མཛོད་ནང་ཚོལ།", - "search_for":"འདི་འཚོལ་ཞིབ།", + "search_page.results": "གྲུབ་འབྲས་རྣམས།", + "common.options": "བདམ་གསེས།", + "common.collection.btn.create_new_collection": "ཕྱོགས་བསྒྲིགས་གསར་པ་ཞིག་བཟོ།", + "connection_panel.search_in_this_text": "ཡིག་ཆ་འདིར་འཚོལ།", + "common.placeholder.search": "འཚོལ་ས།", + "search.result_list.searching":"འཚོལ་བཞིན་པ་་་", + "topic.search_topics": "བརྗོད་གཞི་ལྟར་བཙལ་འབྲས་འདེམ་སྒྲུག།", + "search_filter.exact_matches_only": "ཚིག་འདི་ཁོ་ན་འཚོལ།", + "search.topic.searching_for_topic": "བརྗོད་གཞི་ཞིག་ཚོལ།", + "connection_panel.search_dictionary":"ཚིག་མཛོད་ནང་ཚོལ།", + "header.search_bar.search_for":"འདི་འཚོལ་ཞིབ།", "search_text_or_keywords": "འདིར་དཔེ་ཆ་དང་ཡང་ན་ཚིག་གནད་ཚོལ།", "bookmark.icon_description": "མཚམས་རྟགས་རི་མོ་ལ་བསྣུན་ན་ཟིན་བྲིས་དང་བརྗོད་པ་གང་རུང་ལ་རྟགས་འཇོག་ཐུབ།", "sign_up.form.first_name": "མིང་སྔ་མ།", @@ -211,7 +211,7 @@ "text.chapter": "སྡེ་ཚན།", "text.versions": "འགྱུར་མའམ་དཔེ་རྒྱུན།", "text.versions.source": "ཁུངས།", - "text.versions.review_history": "བཟོ་བཅོས་ཀྱི་ལོ་རྒྱུས།", + "text.versions.information.review_history": "བཟོ་བཅོས་ཀྱི་ལོ་རྒྱུས།", "text.versions.in_progress": "སྒྲིག་བཞིན་ཡོད།", "text.versions.done": "བྱས་ཟིན།", "text.download": "ཕབ་ལེན།", @@ -254,12 +254,12 @@ "text.all_commentary": "ཚན་པ་འདིའི་འགྲེལ་བ་ཡོད་ཚད།", "text.show_all_commnentaries": "འགྲེལ་བ་རྣམས་སྟོན།", "text.topic_connected_to": "བརྗོད་གཞི་འདི་ནི་གཤམ་གྱི་དེར་སྦྲེལ་འདུག", - "panel.tools": "ལག་ཆ།", - "panel.more_options": "བསྐུར་སྟངས་གཞན།", - "panel.notes": "མཆན་འགོད་ས།", - "panel.compare_text": "གཤིབ་བསྡུར་གྱིས།", - "panel.feed_back": "བསམ་འཆར་སྤྲོད་ས།", - "panel.advance": "ཚད་མཐོའི་རྩོམ་སྒྲིག།", + "connection_panel.tools": "ལག་ཆ།", + "connection_panel.more_options": "བསྐུར་སྟངས་གཞན།", + "connection_panel.notes": "མཆན་འགོད་ས།", + "connection_panel.compare_text": "གཤིབ་བསྡུར་གྱིས།", + "connection_panel.feed_back": "བསམ་འཆར་སྤྲོད་ས།", + "connection_panel.advance": "ཚད་མཐོའི་རྩོམ་སྒྲིག།", "text.write_note": "མཆན། གཞན་གྱིས་མཐོང་མི་ཐུབ།", "text.add_note": "མཆན་ཉར།", "text.go_to_my_notes": "མཆན་ཡོད་ས་ལ་འགྲོ།", @@ -307,7 +307,7 @@ "side_nav.stay_connected.decription":"ཡིག་ཆ་གསར་པ་དང་སློབ་གཉེར་གྱི་རྒྱུ་ཆ། དྲ་རྒྱའི་ཁྱད་ཆོས་གཞན་སོགས་ཁ་སྣོན་བྱས་པ་ལ་ལྟོས།", "side_nav.make_donation": "ཞལ་འདེབས་ཤིག་ཕུལ་རོགས།", "sheet.new_source_sheet": "ཁ་བྱང་འབྲི་ས།", - "sheets":"འབྲེལ་ཡོད་ཟིན་བྲིས།", + "common.sheets":"འབྲེལ་ཡོད་ཟིན་བྲིས།", "sheet.source_sheet": "Source Sheet", "sheet.about_this_sheet":"ཤོག་ངོས་འདིའི་སྐོར།", "sheet.source": "ཁུངས།", @@ -321,11 +321,8 @@ "sheet.add_this_source_to_Source_Sheet": "ལུང་ཚིག་འདི་གཤམ་གྱི་ཟིན་བྲིས་གང་རུང་ལ་སྣོན།", "sheet.add_to_sheet": "ཟིན་བྲིས་ལ་སྣོན།", "sheet.add_to": "ལུང་འགོད་སའི་ཟིན་བྲིས་འདེམས།", - "sheet.this_source_was_added_to": "ལུང་ཚིག་འདི་ཟིན་བྲིས་ {xxx} ལ་བསྣན་ཟིན།", - "sheet.ok": "འགྲིག་མ་སོང་།", "sheet.write_or_past_text": "རྩོམ་གསར་འབྲི་ས།", "sheet.add_media_link": "འདྲ་པར་དང་ MP3 YouTube SoundCloud གང་རུང་ཞིག་གི་དྲ་ཐག་སྣོན།", - "sheet.past_url": "དྲ་ཐག་བཤུ་ས།", "sheet.upload_image": "འདྲ་པར་ནང་འཇུག་གྱིས།", "sheet.upload_image_failed_msg": "འདྲ་པར་དེ་ཡར་འཇུག་བྱེད་ཐུབ་མ་སོང་། འདིར་འཇུག་པའི་འདྲ་པར་ནི། JPEG PNG GIF གང་རུང་ཡིན་དགོས།", "sheet.section_comment": "ཚན་པ་འདི་ལ་མཆན་འབྲི་ས།", @@ -350,9 +347,7 @@ "sheet.write_summary": "ཀློག་པ་པོའི་ཆེད་དུ་ཟིན་བྲིས་འདི་ལ་ངོ་སྤྲོད་སྙིང་བསྡུས་ཤིག་ཕྲིས།", "sheet.add_tags": "ཚིག་གནད་སྣོན།", "sheet.list_on_pecha": "ཚང་མས་མཐོང་སར་སྤེལ།", - "sheet.yes": "འགྲིག", "sheet.any_one_can_access": "དྲ་ཐག་བརྒྱུད་ནས་ཀློག་མཁན་གྱིས་ཟིན་བྲིས་འདི།", - "sheet.file": "ཡིག་ཆ།", "sheet.copy_sheet": "ཟིན་བྲིས་ངོ་བཤུ།", "sheet.export_to_google": "དགོས་དགུའི་གསོག་མཛོད་ནང་འཇོག།", "sheet.delete_sheet": "ཟིན་བྲིས་འདི་བསུབ།", @@ -457,12 +452,13 @@ "topic.about_description": "ཤོག་ངོས་འདིའི་ནང་དུ། དོན་དག་སྣ་ཚོགས་དང་འབྲེལ་བའི་ལུང་དང་། འབྲེལ་ཡོད་ཀྱི་བསྟན་བཅོས། ཀློག་མཁན་གྱིས་སྤེལ་བའི་ཟིན་བྲིས་སོགས་བརྗོད་གཞི་ལྟར་ལྟ་ཀློག་བྱེད་པའམ། ཡང་ན། ཁྱེད་རང་གིས་ལྟ་འདོད་པའི་དམིགས་བསལ་གྱི་བརྗོད་གཞི་གང་རུང་འཚོལ་བཤེར་བྱེད་ཆོག། ད་དུང་དྲ་བའི་ཟུར་ངོས་སུ་མི་མང་པོས་དོ་སྣང་བྱེད་སའི་བརྗོད་གཞི་ཚ་ཤོས་གང་ཡིན་གོ་རིམ་ལྟར་གསལ་བ་ལས་ཀྱང་རང་འདོད་ལྟར་བཀླག་ཆོག། མདོར་ན། ཤོག་ངོས་འདིའི་ནང་ལྟ་ཀློག་མང་ཙམ་གྱིས་དང་། ཁྱེད་རང་ལ་སྤྲོ་སྣང་འདྲེན་པའི་བརྗོད་གཞི་མང་པོ་ཡོད།", "topic.trend": "གླེང་གཞི་ཚ་ཤོས།", "topic.combine_source": "ཡིག་མཛོད་ནང་ལ་ཡོད་པའི་ལུང་ཚིག་གཞི་ལ་བཞག་ནས། ཁྱེད་རང་ཉིད་ཀྱི་བསམ་ཚུལ་དང་དྲི་བ། འདྲ་པར། བརྙན་ལ་སོགས་པ་བསྣན་ནས་མཉམ་སྡེབ་བྱེད་ཆོག།", - "add_topic":"བརྗོད་གཞི་སྣོན།", - "create_new_topic":"བརྗོད་གཞི་གསར་པ་ཞིག་བཟོས།", + "sheet.placeholder.add_topic":"བརྗོད་གཞི་སྣོན།", + "topic.create_new_topic":"བརྗོད་གཞི་གསར་པ་ཞིག་བཟོས།", "enter_source_ref":"དཔྱད་གཞིའི་རྒྱུ་ཆ་ཞིག་ཞོག (དཔེར་ན།: 'Yevamot.62b.9-11' ཡང་ན་ 'Yevamot 62b:9-11')", - "category.add_sub_category": "ནང་གསེས་ཀྱི་རིགས་དབྱེ་སྣོན།", - "category.add_source": "རྒྱུ་ཆ་ཞིག་སྣོན།", - "category.add_section": "Add section", + "category.admin.add_sub_category": "ནང་གསེས་ཀྱི་རིགས་དབྱེ་སྣོན།", + "category.admin.add_source": "རྒྱུ་ཆ་ཞིག་སྣོན།", + "category.admin.edit": "རྩོམ་སྒྲིག", + "category.admin.add_section": "Add section", "category.reorder_section": "ཁུངས་ཀྱི་གོ་རིམ་བསྐྱར་སྒྲིག", "reorder_source":"རྒྱུ་ཆའི་གོ་རིམ་བསྐྱར་སྒྲིག་བྱོས།", "topic.all_topics":"བརྗོད་གཞི་ཆ་ཚང་།", @@ -492,7 +488,7 @@ "note_save_error_try_again":"སྟབས་མ་ལེགས་པ་ཞིག་ལ་མཆན་འདི་ཉར་ཚགས་བྱེད་པར་གནད་དོན་ཞིག་འདུག ཤོག་ངོས་འདི་བསྐྱར་ལེན་ནམ་ཡང་ན་བསྐྱར་དུ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།", "note_confirm_delete_request":"ཁྱེད་ཀྱིས་མཆན་འདི་བསུབ་རྒྱུ་གཏན་འཁེལ་ཡིན་ནམ།", "something_went_wrong":"ནོར་འཁྲུལ་ག་གེ་མོ་ཞིག་བྱུང་སོང་། (that's all I know)", - "Aa": "Aa", + "text.reader_option_menu.font_size_lable": "Aa", "decrease_font_size": "ཡིག་གཟུགས་ཆུང་དུ་ཐོངས།", "increase_font_size":"ཡིག་གཟུགས་ཆེ་རུ་ཐོངས།", "this_comment":"མཆན་འདི།", @@ -515,74 +511,65 @@ "sheet.list_your_sheet": "དཔེ་ཆ་དྲ་ཆིགས་ནང་གཞན་གྱིས་རྙེད་ཐུབ་པའི་ཁྱེད་ཀྱི་ཤོག་ངོས་ཀྱི་ཐོ་གཞུང་།", "summary": "སྙིང་བསྡུས།", "write_short_description": "ཁྱེད་ཀྱི་ཤོག་ངོས་ཀྱི་འགྲེལ་བཤད་ཐུང་ངུ་ཞིག་ཕྲིས།", - "add_a_topic":"བརྗོད་གཞི་ཞིག་སྣོན།", "publish": "སྤེལ།", "unpublish": "སྤེལ་མེད་པ།", "topic.add_desription": "ཁྱེད་ཀྱི་ཤོག་ངོས་སྤེལ་བ་ལ་འགྲེལ་བཤད་ཅིག་དང་བརྗོད་གཞི་ཁག་སྣོན་རོགས།", "topic.add_topic_to_sheet": "ཁྱེད་ཀྱི་ཤོག་ངོས་སྤེལ་བ་ལ་བརྗོད་གཞི་ཁག་སྣོན་རོགས།", "sheet.add_description":"ཁྱེད་ཀྱི་ཤོག་ངོས་སྤེལ་བ་ལ་འགྲེལ་བཤད་ཅིག་སྣོན་རོགས།", - "summary_limit":"འགྲེལ་བཤད་སྙིང་བསྡུས་ཀྱི་ཡིག་འབྲུའི་གྲངས་བཅད་ནི་མིང་ཚིག་༢༨༠ཡིན།", - "people_with_link":"དྲ་ཐག་འདི་ཡོད་པའི་མི་རྣམས་ཀྱིས་ཐུབ་པ་ནི་", + "sheet.message.summary_limit":"འགྲེལ་བཤད་སྙིང་བསྡུས་ཀྱི་ཡིག་འབྲུའི་གྲངས་བཅད་ནི་མིང་ཚིག་༢༨༠ཡིན།", + "connection_panel.people_with_link":"དྲ་ཐག་འདི་ཡོད་པའི་མི་རྣམས་ཀྱིས་ཐུབ་པ་ནི་", "sheet.publish_sheet_on_pecha":"གཞན་གྱིས་འཚོལ་ཞིབ་ཐུབ་ཆེད་ཁྱེད་ཀྱི་ཤོག་ངོས་དཔེ་ཆ་དྲ་ཆིགས་ནང་སྤེལ་རོགས།", - "about":"བརྗོད་གཞི་འདིའི་སྐོར།", - "view_sidebar":"འགྲམ་གྱི་སྟེགས་བུའི་ནང་སྟོན།", - "merged_from":"ནས་ཟླ་སྒྲིལ་བྱས།", - "source":"ཁུངས།", - "digitization":"ཨང་བསྒྱུར།", - "license":"ཆོག་མཆན།", - "revision_history":"བཟོ་བཅོས་ཀྱི་ལོ་རྒྱུས།", - "buy_in_print":"པར་འདེབས་བྱས་པ་ཞིག་ཉོ།", - "buy_now":"ད་ལྟ་རང་ཉོ།", - "web_pages":"དྲ་བྱང་།", - "send_msg_to":"ལ་འཕྲིན་ཐུང་ཞིག་ཐོངས།", - "save":"མཚམས་རྟགས་ཅན།", - "save_and_history": "ཉར་ཚགས། & ལོ་རྒྱུས།", - "text_sheet_available_here":"ཁྱེད་ཀྱིས་བཀླག་རྒྱུའི་་དཔེ་དེབ་དང་ཤོག་ངོས་རྣམས་གཞུག་ཕྱོགས་ཁྱེད་ཀྱིས་གཟིགས་སླད་འདིར་ཡོད་པ་ཡིན།", + "common.about":"བརྗོད་གཞི་འདིའི་སྐོར།", + "text.version.merged_from":"ནས་ཟླ་སྒྲིལ་བྱས།", + "connection_panel.menuscript.source":"ཁུངས།", + "text.version.information.digitization":"ཨང་བསྒྱུར།", + "connection_panel.license":"ཆོག་མཆན།", + "text.version.information.buy_in_print":"པར་འདེབས་བྱས་པ་ཞིག་ཉོ།", + "text.version.information.buy_now":"ད་ལྟ་རང་ཉོ།", + "common.saves":"མཚམས་རྟགས་ཅན།", + "common.save":"Save", + "bookmark.save_and_history": "ཉར་ཚགས། & ལོ་རྒྱུས།", + "user_history_panel.text_sheet_available_here":"ཁྱེད་ཀྱིས་བཀླག་རྒྱུའི་་དཔེ་དེབ་དང་ཤོག་ངོས་རྣམས་གཞུག་ཕྱོགས་ཁྱེད་ཀྱིས་གཟིགས་སླད་འདིར་ཡོད་པ་ཡིན།", "bookmark.message.click_icon":"མཚམས་རྟགས་རི་མོ་ལ་བསྣུན་ན་ཟིན་བྲིས་དང་བརྗོད་པ་གང་རུང་ལ་རྟགས་འཇོག་ཐུབ།", "text.new_text":"དཔེ་དེབ་གསར་པ།", - "sent_message":"ཁྱེད་ལ་འཕྲིན་ཞིག་བཏང་ཡོད།", "sheet.publish_new_sheet":"ཤོག་ངོས་གསར་པ་ཞིག་སྤེལ་ཡོད།", "sheet.liked_your_sheet":"ཁྱེད་ཀྱི་ཤོག་ངོས་ལ་དགའ་རྟགས་བཀོད་འདུག", - "is_following_you": "ཁོང་གིས་ཁྱེད་ལ་རྗེས་འཇུག་བྱས་འདུག", - "reply":"ལན་འདེབས།", + "notifcation.is_following_you": "ཁོང་གིས་ཁྱེད་ལ་རྗེས་འཇུག་བྱས་འདུག", "collection.add_you_to_collection": "ཁྱེད་རང་ཕྱོགས་བསྒྲིགས་ཤིག་ལ་བསྣན་འདུག", "message.enter_valid_email":"གློག་འཕྲིན་ཚུལ་མཐུན་ཞིག་འཇོག་རོགས།", "message.subscribed":"སྔོན་མངགས་བྱས་ཟིན། ང་ཚོའི་ཐོ་གཞུང་ལ་ཚུད་པར་དགའ་བསུ་ཞུ།", "message.there_is_error":"དགོངས་དག གནད་དོན་ཞིག་བྱུང་སོང་།", - "connect":"འབྲེལ་བ།", - "site_language":"དྲ་བའི་སྐད་ཡིག།", "message.thanks_for_trying_new_editor":"རྩོམ་སྒྲིག་བྱེད་ཆས་གསར་པ་དེ་བཀོལ་སྤྱོད་བྱས་པར་བཀའ་དྲིན་ཆེ།", "message.go_to_profile_to_create_new_sheet":"རང་ཉིད་ཀྱི་ངོ་སྤྲོད་སྙིང་བསྡུས་ཀྱི་ཤོག་ངོས་སུ་ཕེབས་ཏེ་ཤོག་ལྷེ་གསར་པ་ཞིག་བཟོ་བའམ། ཡང་ན་སྔར་ཡོད་ཅིག་ལ་ཞུས་དག་བརྒྱབས་ནས་ཉམས་མྱོང་གསར་པ་དེ་ལ་ཚོད་ལྟ་ཞིག་བྱོས། ཁྱེད་ཀྱིས་ཚོད་ལྟ་བྱས་རྗེས་ང་ཚོ་ཁྱེད་ཀྱི་བསམ་འཆར་ཁག་ལ་ཉན་འདོད་ཆེན་པོ་ཡོད་པས། འདི་བརྒྱུད་ནས་ང་ཚོར་འབྲེལ་བ་གནང་རོགས།", - "back_to_profile":"ངོ་སྤྲོད་སྙིང་བསྡུས་ཀྱི་ཤོག་ངོས་སུ་ཕྱིར་ལོག", - "back_to_old_version":"ཐོན་རིམ་རྙིང་བའི་ཐད་ཕྱིར་ལོག", + "editor.back_to_profile":"ངོ་སྤྲོད་སྙིང་བསྡུས་ཀྱི་ཤོག་ངོས་སུ་ཕྱིར་ལོག", + "editor.back_to_old_version":"ཐོན་རིམ་རྙིང་བའི་ཐད་ཕྱིར་ལོག", "feedback.request_for_feedback":"བསམ་འཆར་གནང་བར་རེ་ཞུ་བྱོས།", "message.new_pecha_editor":"ཁྱེད་ཀྱིས་དཔེ་ཆ་དྲ་ཆིགས་ཀྱི་རྩོམ་སྒྲིག་བྱེད་ཆས་གསར་བ་དེ་ཚོད་ལྟ་བྱས་པར་བཀའ་དྲིན་ཆེ། ང་ཚོས་ཁྱོད་ཀྱི་བསམ་འཆར་རྣམས་ཤེས་འདོད་ཆེན་པོ་བྱེད་ཀྱི་ཡོད་པས། ཁྱོད་ཀྱིས་སྐར་མ་འགའི་དུས་ཡུན་སྤྱད་ནས་ཉམས་མྱོང་གི་སྐོར་ཞིག་གསུངས་རོགས།", "message.encounter_issue":"ཁྱེད་ཀྱིས་རྩོམ་སྒྲིག་བྱེད་ཆས་གསར་པ་བཀོལ་སྤྱོད་བྱེད་སྐབས་གནད་དོན་རེ་ལ་ཕྲད་སོང་ངམ། དཔེར་ན།", - "technical_problem":"ཐབས་རྩལ་གྱི་དཀའ་ངལ།", + "message.technical_problem":"ཐབས་རྩལ་གྱི་དཀའ་ངལ།", "editor.difficulties_using_editor":"རྩོམ་སྒྲིག་བྱེད་ཆས་དེ་བཀོལ་སྤྱོད་བྱེད་མི་བདེ་བ།", - "missing_feature":"ཁྱད་ཆོས་མ་ཚང་བ།", + "message.missing_feature":"ཁྱད་ཆོས་མ་ཚང་བ།", "tell_us_about":"ང་ཚོར་དེའི་སྐོར་ཞིག་གསུང་རོགས།", "feedback.submit":"བསམ་འཆར་སྤེལ་རོགས།", - "thank_you":"བཀའ་དྲིན་ཆེ།", - "try_new_version":"ཐོན་རིམ་གསར་པ་དེ་ཚོད་ལྟ་བྱོས།", + "feedback.message.thank_you":"བཀའ་དྲིན་ཆེ།", + "editor.message.try_new_version":"ཐོན་རིམ་གསར་པ་དེ་ཚོད་ལྟ་བྱོས།", "feedback.message.response":"ཁྱེད་ཀྱིས་བསམ་འཆར་ཕུལ་བ་ལ་རྗེས་སུ་ཡི་རང་ཞུ། ད་ལྟ་ཁྱེད་ཀྱིས་བསྐྱར་དུ་མ་ཕྱིའི་ཤོག་ངོས་རྩོམ་སྒྲིག་བྱེད་ཆས་རྙིང་བ་དེ་བཀོལ་ནས་རང་ཉིད་ཀྱི་ཤོག་ངོས་རྩོམ་སྒྲིག་བྱེད་ཆོག གལ་སྲིད་ཁྱེད་ལ་དོགས་འདྲི་དང་བསམ་འཆར་འཕར་མ་སོགས་ཡོད་ན་འདི་ནས་ང་ཚོར་ཐད་ཀར་འབྲེལ་བ་གནང་རོགས།", "file.message.error":"ནོར་འཁྲུལ། པར་རིས་དེ་ཕབ་ལེན་བྱེད་སྐབས་ཕབ་ལེན་བྱེད་ཡུལ་གྱི་ཡིག་རིགས་ནོར་མེད་པ་ངེས་པར་དུ་དགོས། (དཔེར་ན། jpg, png)", - "add_picture":"འདྲ་པར་སྣོན།", - "upload_new":"གསར་པ་ནང་འཇུག་བྱོས།", - "drag_corners_to_crop_images":"ཟུར་སྣེ་དག་དྲུད་ནས་པར་རིས་འབྲེག།", + "profile.picture.add_picture":"འདྲ་པར་སྣོན།", + "profile.picture.upload_new":"གསར་པ་ནང་འཇུག་བྱོས།", + "profile.picture.drag_corners_to_crop_images":"ཟུར་སྣེ་དག་དྲུད་ནས་པར་རིས་འབྲེག།", "message.login_to_use_feature":"ཁྱད་ཆོས་འདི་བེད་སྤྱོད་གཏོང་ཆེད་ནང་འཛུལ་བྱེད་རོགས།", "feedback.feedback_sent":"བསམ་འཆར་བསྐུར་ཡོད།", "feedback.message.have_some_feeback":"བསམ་འཆར་ཡོད་ན་གསུང་རྐྱང་གནང་རོགས། ང་ཚོར་ཕན་ངེས་ཡིན།", "message.cookies_msg":"ང་ཚོས་ཁྱེད་ལ་ང་ཚོའི་དྲྭ་ཚིགས་སྟེང་གི་མྱོང་ཚོར་ལེགས་ཤོས་དེ་སྤྲོད་ཆེད། ཀུ་སི་བེད་སྤྱོད་གཏོང་གི་ཡོད། འགྲིག་སོང་། ཞེས་པ་འི་སྟེང་དུ་མུ་མཐུད་བཀླགས།", - "ok":"འགྲིག", + "common.ok":"འགྲིག", "community.message.previewing":"ཁྱེད་ཀྱིས་འདི་ལ་ཚོགས་སྡེའི་ཤོག་ལྷེ་སྔོན་མཐོང་བྱེད་བཞིན་ཡོད།", - "all_ready_exists":"སྔོན་གྱི་མཐའ་ནི་རྣམ་པར་སྤངས།།", - "source_versions": "བོད་སྒྱུར་མཆན།", - "alt_source_versions":"གཞན་ཡང་།", + "common.all_ready_exists":"སྔོན་གྱི་མཐའ་ནི་རྣམ་པར་སྤངས།།", + "text.version.source_versions": "བོད་སྒྱུར་མཆན།", + "text.version.alt_source_versions":"གཞན་ཡང་།", "sheet.loading_sheet":"རས་ཟུང་དག་ཀྱང་བཀལ་ནས་སུ། །", - "add":"སྣོན་པ་བཏབ་ཆོག།", - "save_and_next":"ཉར་ཚགས་དང་རྗེས་མ།", - "setting_admin":"སྒྲིག་གཞི་དང་འཛིན་སྐྱོང་།", + "sheet.catagorize.save_and_next":"ཉར་ཚགས་དང་རྗེས་མ།", + "sheet.catagorize.setting_admin":"སྒྲིག་གཞི་དང་འཛིན་སྐྱོང་།", "sheet.switch_finding_sheet":"ནང་དོན་མེད་པའི་རས་གདན་བཙལ་ནས་བརྗེ་སྒྱུར།", "sheet.skit_sheet":"རས་གདན་འདི་ལ་མཆོངས་དང་།", "sheet.message.sheet_will_save":"རབ་ཏུ་མི་བཟད་འཇིགས་པ་དག །", @@ -590,59 +577,55 @@ "message.change_field_before_saving":"གསོག་ཉར་མ་བྱས་གོང་ཞིང་ཁ་གཅིག་བརྗེ་སྒྱུར་བྱེད་རོགས།", "category.parent_category":"ཕ་མའི་སྡེ་ཚན།", "category.message.cannot_delete_content":"སྡེ་ཚན་གྱི་ནང་གསེས་བསལ་མི་ཐུབ།", - "load_more": "འདི་ལས་མང་།", - "all":"ཐམས་ཅད་དང་།", + "common.load_more": "འདི་ལས་མང་།", + "common.all":"ཐམས་ཅད་དང་།", "message.success_created_new_connection":"ལམ་ལྷོང་། ཁྱེད་ཀྱིས་འབྲེལ་ལམ་གསར་པ་ཞིག་བསྐྲུན་ཡོད།", - "about_the_source":"མ་ཕྱི་འདིའི་སྐོར།", + "connection_panel.about_the_source":"མ་ཕྱི་འདིའི་སྐོར།", "note.go_to_my_note": "མཆན་ཡོད་ས་ལ་འགྲོ།", - "feedback":"བསམ་འཆར་སྤྲོད་ས།", - "advance":"ཚད་མཐོའི་རྩོམ་སྒྲིག།", - "add_translation":"འགྱུར་མ་གསར་སྣོན།", - "add_connection":"འབྲེལ་ཡོད་གསར་སྣོན།", + "connection_panel.tool_button.add_translation":"འགྱུར་མ་གསར་སྣོན།", + "connection_panel.tool_button.add_connection":"འབྲེལ་ཡོད་གསར་སྣོན།", "text.edit_text":"ཆོས་མཛོད་རྩོམ་སྒྲིག", "message.error_invalid_entry":"ཁྱེད་ཀྱིས་ཧེ་བྷི་རུའི་ཚིག་ཅིག་བཀླག་རོགས།", - "pecha_readings":"དཔེ་ཆ་ཀློག་མཁན།", - "manuscripts":"ལག་བྲིས་མ་དང་།", - "browse":"བྷོ་རོ་སི།", - "messange.we_only_understand_connection_betweeen_two_texts":"ད་ལྟ་ང་ཚོས་གཞུང་འདི་གཉིས་ཀྱི་འབྲེལ་བ་ཙམ་ལས་རྟོགས་ཐུབ་ཀྱི་མེད།", - "see_less":"ཉུང་ངུ་བལྟ།", + "connection_panel.tool_button.pecha_readings":"དཔེ་ཆ་ཀློག་མཁན།", + "connection_panel.tool_button.manuscripts":"ལག་བྲིས་མ་དང་།", + "connection_panel.add_connection.browse":"བྷོ་རོ་སི།", + "message.we_only_understand_connection_betweeen_two_texts":"ད་ལྟ་ང་ཚོས་གཞུང་འདི་གཉིས་ཀྱི་འབྲེལ་བ་ཙམ་ལས་རྟོགས་ཐུབ་ཀྱི་མེད།", "topic.noknown_topic":"འདིར་གྲགས་པའི་བརྗོད་བྱ་མེད།", - "no_web_pages":"དྲྭ་ཚིགས་འདི་ལ་རྒྱུས་མངའ་ཡོད་མཁན་སུ་ཡང་མེད།", - "from":"དེ་ལས་", - "here":"འདིར་ནི་", + "connection_panel.web_list.no_web_pages":"དྲྭ་ཚིགས་འདི་ལ་རྒྱུས་མངའ་ཡོད་མཁན་སུ་ཡང་མེད།", + "connection_panel.web_list.from":"དེ་ལས་", + "connection_panel.web_list.here":"འདིར་ནི་", "sheet.message.do_not_support_adding_images_to_source_sheets":"ད་ལྟ་ང་ཚོས་ཡིག་ཆའི་ཁུངས་ཤོག་ལ་པར་རིས་སྣོན་རྒྱུར་རྒྱབ་སྐྱོར་བྱེད་ཀྱི་མེད།", "sheet.button_connection_to_source":" འདིར་འབྲེལ་ཡོད་ཀྱི་དྲ་སྦྲེལ་རྣམས་ལ་གཟིགས།", "sheet.button_click_to_see":"འདིར་གཟིགས།", "sheet.connections_to_this_source":"སྐྱེ་མཆེད་འདི་ལ་སྦྱོར་བ་ནི། །", "sheet.view_old_sheet_experience":"རས་རྙིང་ནང་གི་ལྟ་སྣང་།", - "ago":"དུས་ན།", - "created":"Created", - "create": "Create", + "sheet.created_time.ago":"དུས་ན།", + "common.created":"Created", + "common.create": "Create", "topic.topics_or_tags":" བརྗོད་བྱ།/ཐ་སྙད།", "topic_no_tags":"ཐ་སྙད་མེད།", "sheet.new_category": "སྡེ་ཚན་གསར་པ།", - "categories": "སྡེ་ཚན་།", - "print":"དཔར་སྐྲུན།", - "divine_name":"མིང་།", + "sheet.categories": "སྡེ་ཚན་།", + "connection_panel.tool_button.divine_name":"མིང་།", "text.other_text":"གཞུང་གཞན་དག་ལས་ཀྱང་།", "connection.choose_text_to_connect":"མཚམས་སྦྱོར་གྱི་དཔེ་ཆ་ཞིག་འདེམས།", - "coutesy_of":"གུས་པར་སྨྲ་བ།", - "select": "འདེམས་སྒྲུག", + "connection_panel.menuscript.coutesy_of":"གུས་པར་སྨྲ་བ།", + "common.select": "འདེམས་སྒྲུག", "note.delete_note":"མཆན་འགོད།", "sheet.your_sheet":"ཁྱེད་ཀྱི་ཤོག་ངོས་།", "sheet.section_from":"{{sheetTitle}} སྡེ་ཚན་གྱི།", "sheet.has_been_added_to":"{{sheetTitle}} ནང་བསྣན་པ་རེད།", "sheet.message.login_before_add_source_sheet":"ཤོག་ལྷེ་གཅིག་ལ་ཁུངས་འདི་ཁ་སྣོན་བྱེད་ཆེད།", - "dictionaries":"ཚིག་མཛོད།", - "go_to_translation":"བསྒྱུར་དུ་གཞུག་གོ། །", + "connection_panel.tool_button.dictionaries":"ཚིག་མཛོད།", + "text.text_column_banner.go_to_translation":"བསྒྱུར་དུ་གཞུག་གོ། །", "note.add_note":"མཆན་ཉར།", - "section":", སྡེ་ཚན་།", + "sheet.source_sheet.make_ref.section":", སྡེ་ཚན་།", "search.zero_result":"གྲུབ་འབྲས་གང་ཡང་མ་ཐོབ།", "search.message.toggle_filter": "འཚོལ་ཞིབ་ཀྱི་འདེམས་གཅོག་བྱེད་པར་ཨེན་ཊི་མནན་དགོས།", "search.message.toggle_list_of_books":"གྱི་ནང་དུ་དཔེ་ཆའི་ཐོ་གཞུང་བྱེ་བྲག་པ་རྣམས་ལ་ཡིག་རིགས་དང་སྡེ་ཚན་གྱི་སྒོ་ནས་དབྱེ་འབྱེད་བྱེད་དུ་འཇུག་པར་ toggle དགོས།", "search.more_results":"འབྲས་བུ་གཞན་པ་།", "search.another_result":"འབྲས་བུ་གཞན་ཡང་།", "note.zero_notes":"༠ དཔེ་ཆ་", - "zero_followers":"༠ འཁོར", - "zero_following":"༠ རྗེས་འབྲང་" + "profile.zero_followers":"༠ འཁོར", + "profile.zero_following":"༠ རྗེས་འབྲང་" } diff --git a/static/js/serviceWorker.js b/static/js/serviceWorker.js new file mode 100644 index 0000000000..dc897b89c8 --- /dev/null +++ b/static/js/serviceWorker.js @@ -0,0 +1,12 @@ +const staticDevCoffee = "pecha-v1" + +self.addEventListener("install", installEvent => { +}) + +self.addEventListener("fetch", fetchEvent => { + fetchEvent.respondWith( + caches.match(fetchEvent.request).then(res => { + return res || fetch(fetchEvent.request) + }) + ) + }) \ No newline at end of file diff --git a/static/js/sheets.js b/static/js/sheets.js index f92ff56928..a8e648bb6c 100755 --- a/static/js/sheets.js +++ b/static/js/sheets.js @@ -854,13 +854,13 @@ $("#likeButton").click(function(e) { var likeCount = parseInt($("#likeCount").text()); if ($(this).hasClass("liked")) { - $(this).removeClass("liked").text(_("like")); + $(this).removeClass("liked").text(_("common.like")); likeCount -= 1; $("#likeCount").text(likeCount); $.post("/api/sheets/" + sjs.current.id + "/unlike"); Sefaria.track.sheets("Unlike", sjs.current.id); } else { - $(this).addClass("liked").text(_("unlike")); + $(this).addClass("liked").text(_("sheet.unlike")); $.post("/api/sheets/" + sjs.current.id + "/like"); likeCount += 1; $("#likeCount").text(likeCount); @@ -1705,7 +1705,7 @@ $("#highlightMenu .optionsMenu").on('click', '.segmentedContinuousToggle', funct $(".highlighterTagWindow").on('click','.close-button', function() {closeHighlighterTagWindow()}); function saveNewlyCreatedTag(newTagName,newTagColor) { - if (newTagName !== _("create_new") && newTagName !== "") { + if (newTagName !== _("sheet.create_new") && newTagName !== "") { $(".sheetHighlighterTags").append('
' + newTagName + '
'); $(".highlighterFilterTags").append('
'); resetSplitHighlighterSegment(); @@ -1713,18 +1713,18 @@ function saveNewlyCreatedTag(newTagName,newTagColor) { autoSave(); } - $(".createNewHighlighterTag .tagName").text(_("create_new")) + $(".createNewHighlighterTag .tagName").text(_("sheet.create_new")) } function applyNewlyCreatedTag(newTagName,newTagColor) { - if (newTagName !== _("create_new") && newTagName !== "") { + if (newTagName !== _("sheet.create_new") && newTagName !== "") { $(".sheetHighlighterTags").append('
' + newTagName + '
'); $(".highlighterFilterTags").append('
'); resetSplitHighlighterSegment(); resetHighlighterFilterTags(); if (sjs.selection.startOffset !== sjs.selection.endOffset) { $(".highlighterTagWindow .save").click(); - $(".createNewHighlighterTag .tagName").text(_("create_new")) + $(".createNewHighlighterTag .tagName").text(_("sheet.create_new")) } else { $(".createNewHighlighterTag .tagName").text("") @@ -1740,7 +1740,7 @@ $(".createNewHighlighterTag .tagName").keydown(function(e){ }); $(".createNewHighlighterTag .tagName").focus(function(e){ - if ($(this).text()==_("create_new")) { + if ($(this).text()==_("sheet.create_new")) { $(this).text(''); } }); @@ -3378,7 +3378,7 @@ sjs.copySource = source; // Get sheet list if necessary if (!$("#sheetList .sheet").length) { - $("#sheetList").html(Sefaria._("loading...")); + $("#sheetList").html(Sefaria._("common.loading")); $.getJSON("/api/sheets/user/" + Sefaria._uid, function(data) { $("#sheetList").empty(); var sheets = ""; diff --git a/static/manifest.json b/static/manifest.json new file mode 100644 index 0000000000..782404c920 --- /dev/null +++ b/static/manifest.json @@ -0,0 +1,15 @@ +{ + "name": "Pecha.org", + "short_name": "Pecha.org", + "start_url": "base.html", + "display": "standalone", + "background_color": "#fdfdfd", + "theme_color": "#db4938", + "orientation": "portrait-primary", + "icons": [ + { + "src": "https://pecha.org/static/img/pecha-icon.png", + "type": "image/png", "sizes": "72x72" + } + ] + } \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 9dc3253d37..98fe5232af 100644 --- a/templates/base.html +++ b/templates/base.html @@ -59,6 +59,9 @@ + + + My PWA @@ -172,6 +175,34 @@ + + + + + + + + + + + + + + + @@ -183,10 +214,28 @@ {% endif %} - + {% autoescape off %} + + + + + +