learningequality / ka-lite

KA Lite: lightweight web server for serving core Khan Academy content (videos and exercises) without needing internet connectivity
https://learningequality.org/ka-lite/
Other
456 stars 304 forks source link

Missing msgids in version 0.17 content packs #5477

Closed polilinux-fsrechia closed 7 years ago

polilinux-fsrechia commented 7 years ago

Summary

Translation files for version 0.17 at crowdin are incomplete (at least for pt-BR). Even though crowdin shows 100% translated content for pt-BR 0.17, some very basic msg ids are missing.

How to reproduce

Download .po files for both version 0.16 and 0.17. Notice that the string "Teach" is not present in the 0.17 translation file:

fsrechia@linux-t2je:/mnt/sda9> grep Teach 0.17-django*.po 
fsrechia@linux-t2je:/mnt/sda9> grep Teach 0.16-django*.po 
0.16-djangojs.po:msgid "Teach"
fsrechia@linux-t2je:/mnt/sda9> 

I've noticed this with files downloaded today (June 23rd 2017)

Workaround:

Merge translation files from versions 0.16 and 1.17:

$ msgcat 0.17-django.po 0.17-djangojs.po 0.16-django.po 0.16-djangojs.po > unified.po
$ msgfmt unified.po -o unified.mo

and use unified.mo as both backend.mo and frontend.mo

Real-life consequences

Standard pt-BR version of KA Lite 0.17.1 has some very basic translation strings missing. I am not sure if other languages are affected

benjaoming commented 7 years ago

Thanks @polilinux-fsrechia for the feedback -- I'm going to investigate this now by comparing the msgids on CrowdIn with what I can generate locally from the 0.17.x branch.

@mrpau-eugene would you be able to participate in solving this issue?

benjaoming commented 7 years ago

Trying to run kalite manage makemessages -l en - works fine, however when generating the JavaScript part --domain=djangojs, problems occur on 0.17.x, which makes me believe that the commands were not run on this branch:

kalite manage makemessages -l=en --domain="djangojs"
processing language =en
Traceback (most recent call last):
  File "ka-lite/kalite/packages/bundled/django/core/management/base.py", line 224, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "ka-lite/kalite/packages/bundled/django/core/management/base.py", line 263, in execute
    output = self.handle(*args, **options)
  File "ka-lite/kalite/packages/bundled/django/core/management/base.py", line 393, in handle
    return self.handle_noargs(**options)
  File "ka-lite/kalite/i18n/management/commands/makemessages.py", line 42, in handle_noargs
    inline_help_poentries = self.extract_inline_help_strings()
AttributeError: 'Command' object has no attribute 'extract_inline_help_strings'
benjaoming commented 7 years ago

What happened...

1) I don't believe that the previous makemessages (which collects messages for translations across the codebase) was run cleanly because evidently the command doesn't run in the 0.17.x branch. Since I can see from @aronasorman 's method, it has been run on our central server which has a submodule, and then what could have happened would be that the command succeeded because 0.16.x was checked out, but the submodule was outdated or in some other state.

2) 0.17-djangojs.po NOR 0.17-django.po on CrowdIn contained "Teach". This roughly suggests that the 0.17 version was added for django.po but not djangojs.po (containing handlebars and js resources). Running makemessages (after fixing it) on 0.17.x makes "Teach" appear in djangojs.po.

3) I have added the new kalite/dist folder to the ignore patterns, since the folder is used for distribution artefacts. Everything else is collected as usual, however it gets a bit funky with the central server: We have collected strings across a repo that consisted of both ka-lite and the central server. I really don't like the behaviour, so I'm splitting out central server locale stuff to a separate resource on CrowdIn.

4) I'm also writing down the guidelines in our Sphinx docs.

Regarding the central server

  1. We don't have resources to risk an update, so we won't: All the work of cloning the central repo and updating the submodule is therefore just faking the actual situation, making people write strings for the central server that we don't deploy.
  2. There's nothing new in case we do update it -- all syncs are done the same way
  3. Splitting out the translations will make it much more evident whether the central server is translated or not - and - whether KA Lite is translated or not. Missing central server translation should not negatively impact decisions to ship a content pack!
  4. I think - for one thing - that people are less likely to use the central server in other languages than English.
benjaoming commented 7 years ago

The central server doesn't seem to have any way of setting user language anyways. For instance, if user chooses to do online device registration, she will always get English.

benjaoming commented 7 years ago

The latter prompts me to conclude that we can stop collecting messages with ka-lite-central as the base directory and instead collect them conventionally and exclusively for KA Lite to which they're applicable.

benjaoming commented 7 years ago

@aronasorman can you agree to this?

aronasorman commented 7 years ago

I agree that we don't need to translate ka-lite-central anymore, and that we should just move the po file pulling logic to KA Lite itself.

benjaoming commented 7 years ago

Here's an overview of changes, I have adjusted with the 116 messages that have been removed because they belonged to ka-lite-central.

New msg: msgid=u'You got %(correct)d out of %(total_number)d questions correct.' msgstr=u''
New msg: msgid=u'there are ' msgstr=u''
New msg: msgid=u'created on' msgstr=u''
New msg: msgid=u'Go to First Page' msgstr=u''
New msg: msgid=u'Select Facility' msgstr=u''
New msg: msgid=u'created by' msgstr=u''
New msg: msgid=u'Correct! Next Question...' msgstr=u''
New msg: msgid=u'And seem to be struggling with ' msgstr=u''
New msg: msgid=u'Would you be interested in the possibility of a low-cost (~$60), small, self-contained server solution, capable of running KA Lite?' msgstr=u''
New msg: msgid=u' videos.' msgstr=u''
New msg: msgid=u'args' msgstr=u''
New msg: msgid=u'Click here to carry on learning!' msgstr=u''
New msg: msgid=u'Submit' msgstr=u''
New msg: msgid=u'Logs' msgstr=u''
New msg: msgid=u'Score' msgstr=u''
New msg: msgid=u'Topics' msgstr=u''
New msg: msgid=u'(No errors)' msgstr=u''
New msg: msgid=u'75%' msgstr=u''
New msg: msgid=u'The facilities have internet access, but it is expensive for high bandwidth.' msgstr=u''
New msg: msgid=u'question' msgstr=u''
New msg: msgid=u'Your feedback will help us make better content for future learners!' msgstr=u''
New msg: msgid=u' as an admin.' msgstr=u''
New msg: msgid=u'No groups' msgstr=u''
New msg: msgid=u'I have' msgstr=u''
New msg: msgid=u'Add a new deployment.' msgstr=u''
New msg: msgid=u'Hours spent on content vs total hours logged' msgstr=u''
New msg: msgid=u'Current view (copy or open in new window)' msgstr=u''
New msg: msgid=u'command' msgstr=u''
New msg: msgid=u'Next' msgstr=u''
New msg: msgid=u'Progress' msgstr=u''
New msg: msgid=u'Continue to management' msgstr=u''
New msg: msgid=u'Unknown contact type: %s' msgstr=u''
New msg: msgid=u'Delete my review' msgstr=u''
New msg: msgid=u'Actual Size' msgstr=u''
New msg: msgid=u'Topic' msgstr=u''
New msg: msgid=u' Struggling. ' msgstr=u''
New msg: msgid=u'The email address you entered is invalid.' msgstr=u''
New msg: msgid=u"You haven't started to watch videos! " msgstr=u''
New msg: msgid=u'This email address is already in use.' msgstr=u''
New msg: msgid=u'Secondly' msgstr=u''
New msg: msgid=u'e.g. number of facilities, number of teachers, number of students, grade levels, languages spoken, learning model (e.g. formal, non-formal, prison, alternative), etc.' msgstr=u''
New msg: msgid=u'Rotate Clockwise' msgstr=u''
New msg: msgid=u'Add %(name)s' msgstr=u''
New msg: msgid=u'Question' msgstr=u''
New msg: msgid=u'OK' msgstr=u''
New msg: msgid=u'Current View' msgstr=u''
New msg: msgid=u'Incorrect' msgstr=u''
New msg: msgid=u'Sign Up' msgstr=u''
New msg: msgid=u'Devices & Zones' msgstr=u''
New msg: msgid=u'%(name)s - disabled' msgstr=u''
New msg: msgid=u'If checked this job will never run.' msgstr=u''
New msg: msgid=u'Unable to connect to a KA Lite server at %s' msgstr=u''
New msg: msgid=u"To connect a KA Lite installation to this new sharing network, visit the server's 'registration' page." msgstr=u''
New msg: msgid=u'Update Your Organization' msgstr=u''
New msg: msgid=u'Your Email' msgstr=u''
New msg: msgid=u'Current status of user exercises' msgstr=u''
New msg: msgid=u'File name:' msgstr=u''
New msg: msgid=u'disabled' msgstr=u''
New msg: msgid=u'The facilities have no internet access whatsoever.' msgstr=u''
New msg: msgid=u'Attachments' msgstr=u''
New msg: msgid=u'Highlight all' msgstr=u''
New msg: msgid=u' quizzes.' msgstr=u''
New msg: msgid=u'Ratings' msgstr=u''
New msg: msgid=u'You are still working on ' msgstr=u''
New msg: msgid=u'Show me how!' msgstr=u''
New msg: msgid=u'More Information' msgstr=u''
New msg: msgid=u'0:00' msgstr=u''
New msg: msgid=u'Organization Name' msgstr=u''
New msg: msgid=u'Minutely' msgstr=u''
New msg: msgid=u'Active' msgstr=u''
New msg: msgid=u'sort order' msgstr=u''
New msg: msgid=u'Your progress streak bar for this exercise' msgstr=u''
New msg: msgid=u'Document Outline' msgstr=u''
New msg: msgid=u'You have successfully removed %(username)s as an administrator for %(org_name)s' msgstr=u''
New msg: msgid=u'Keywords:' msgstr=u''
New msg: msgid=u'Title:' msgstr=u''
New msg: msgid=u'Open' msgstr=u''
New msg: msgid=u'Running?' msgstr=u''
New msg: msgid=u'Update Organization' msgstr=u''
New msg: msgid=u'Unexpected response format from your KA Lite installation.' msgstr=u''
New msg: msgid=u"It's not nice to force your way into groups." msgstr=u''
New msg: msgid=u'Preparing document for printing...' msgstr=u''
New msg: msgid=u'Student Activity Feed' msgstr=u''
New msg: msgid=u'Your Name' msgstr=u''
New msg: msgid=u'The actual question itself.' msgstr=u''
New msg: msgid=u'Create Organization' msgstr=u''
New msg: msgid=u'Download' msgstr=u''
New msg: msgid=u'History' msgstr=u''
New msg: msgid=u'Creator:' msgstr=u''
New msg: msgid=u'Do you have any other questions or suggestions for us?' msgstr=u''
New msg: msgid=u'status' msgstr=u''
New msg: msgid=u'Resume' msgstr=u''
New msg: msgid=u' In progress. ' msgstr=u''
New msg: msgid=u'Match case' msgstr=u''
New msg: msgid=u'Unfortunately for you, you do not have permission to do that.' msgstr=u''
New msg: msgid=u'Organization Name & Contacts' msgstr=u''
New msg: msgid=u'300%' msgstr=u''
New msg: msgid=u'0%' msgstr=u''
New msg: msgid=u'Find' msgstr=u''
New msg: msgid=u'Help' msgstr=u''
New msg: msgid=u'100%' msgstr=u''
New msg: msgid=u'You have successfully deleted Organization %(org_name)s.' msgstr=u''
New msg: msgid=u'Must be logged in to download with zone information.' msgstr=u''
New msg: msgid=u'Next Steps' msgstr=u''
New msg: msgid=u'Previous' msgstr=u''
New msg: msgid=u'You have successfully deleted Zone %(zone_name)s' msgstr=u''
New msg: msgid=u'due' msgstr=u''
New msg: msgid=u'This can take several minutes.' msgstr=u''
New msg: msgid=u'Which of the following statements accurately describe the internet access at your planned deployment?' msgstr=u''
New msg: msgid=u'50%' msgstr=u''
New msg: msgid=u'Streak' msgstr=u''
New msg: msgid=u'Run Job' msgstr=u''
New msg: msgid=u"Can't specify a shell_command if a django admin command is already specified" msgstr=u''
New msg: msgid=u'Zoom Out' msgstr=u''
New msg: msgid=u'Related content:' msgstr=u''
New msg: msgid=u'Deployments' msgstr=u''
New msg: msgid=u' Completed. ' msgstr=u''
New msg: msgid=u'400%' msgstr=u''
New msg: msgid=u'Browse to the previous page of deployments.' msgstr=u''
New msg: msgid=u'Manage' msgstr=u''
New msg: msgid=u'About' msgstr=u''
New msg: msgid=u'Data Type' msgstr=u''
New msg: msgid=u'Presentation Mode' msgstr=u''
New msg: msgid=u'Diagnostics' msgstr=u''
New msg: msgid=u'Thank you for installing KA Lite!' msgstr=u''
New msg: msgid=u'There is internet access within reasonable transportation distance, so the server in this school can be taken and connected occasionally' msgstr=u''
New msg: msgid=u' For this quiz your score is ' msgstr=u''
New msg: msgid=u'User menu' msgstr=u''
New msg: msgid=u'Browse to the next page of deployments.' msgstr=u''
New msg: msgid=u'Run' msgstr=u''
New msg: msgid=u'This week' msgstr=u''
New msg: msgid=u'shell command' msgstr=u''
New msg: msgid=u'Play / pause' msgstr=u''
New msg: msgid=u'Toggle Sidebar' msgstr=u''
New msg: msgid=u'Switch to Presentation Mode' msgstr=u''
New msg: msgid=u'Zone ID not found: %s' msgstr=u''
New msg: msgid=u'never (disabled)' msgstr=u''
New msg: msgid=u'seconds' msgstr=u''
New msg: msgid=u'An Organization is a group of people responsible for administering a set of Sharing Networks.' msgstr=u''
New msg: msgid=u'%% Completed' msgstr=u''
New msg: msgid=u'slug' msgstr=u''
New msg: msgid=u'params' msgstr=u''
New msg: msgid=u'Enter the password to open this PDF file:' msgstr=u''
New msg: msgid=u'Document Properties\u2026' msgstr=u''
New msg: msgid=u', we recommend you' msgstr=u''
New msg: msgid=u' For this exercise your streak is ' msgstr=u''
New msg: msgid=u'Points' msgstr=u''
New msg: msgid=u'second'/u'seconds' msgstr=''
New msg: msgid=u'Hourly' msgstr=u''
New msg: msgid=u'Action' msgstr=u''
New msg: msgid=u'Tags:' msgstr=u''
New msg: msgid=u'Frequent asked question' msgstr=u''
New msg: msgid=u'My Organization' msgstr=u''
New msg: msgid=u'%(number)d %(type)s' msgstr=u''
New msg: msgid=u'There are ' msgstr=u''
New msg: msgid=u'Duration' msgstr=u''
New msg: msgid=u'Learner' msgstr=u''
New msg: msgid=u'Facility User Logs' msgstr=u''
New msg: msgid=u'Previous Page' msgstr=u''
New msg: msgid=u'Page:' msgstr=u''
New msg: msgid=u'Enable hand tool' msgstr=u''
New msg: msgid=u'Of those you have mastered ' msgstr=u''
New msg: msgid=u'Cancel' msgstr=u''
New msg: msgid=u'time until next run' msgstr=u''
New msg: msgid=u'Page Count:' msgstr=u''
New msg: msgid=u'topic' msgstr=u''
New msg: msgid=u'next run' msgstr=u''
New msg: msgid=u' For this video you completed ' msgstr=u''
New msg: msgid=u'A shell command.' msgstr=u''
New msg: msgid=u'Which of the following statements accurately describe the hardware and infrastructure at your planned deployment?' msgstr=u''
New msg: msgid=u'What country/countries are you hoping to deploy in?' msgstr=u''
New msg: msgid=u'Average progress in exercises' msgstr=u''
New msg: msgid=u' exercises.' msgstr=u''
New msg: msgid=u'You can change your rating at any time.' msgstr=u''
New msg: msgid=u'Could not connect to your KA Lite installation to share Khan Academy data.' msgstr=u''
New msg: msgid=u'Servers will be in roving vans, visiting a number of facilities.' msgstr=u''
New msg: msgid=u'%% In-Progress' msgstr=u''
New msg: msgid=u'Contact Us!' msgstr=u''
New msg: msgid=u'Creation Date:' msgstr=u''
New msg: msgid=u'Scratchpad not available' msgstr=u''
New msg: msgid=u'Subject:' msgstr=u''
New msg: msgid=u'Monthly' msgstr=u''
New msg: msgid=u'Show Thumbnails' msgstr=u''
New msg: msgid=u'Select Network:' msgstr=u''
New msg: msgid=u'Close' msgstr=u''
New msg: msgid=u'And your score is ' msgstr=u''
New msg: msgid=u'Go to Last Page' msgstr=u''
New msg: msgid=u'Semicolon separated list (no spaces) of <a href="http://labix.org/python-dateutil" target="_blank">rrule parameters</a>. e.g: interval:15 or byhour:6;byminute:40' msgstr=u''
New msg: msgid=u'frequency' msgstr=u''
New msg: msgid=u'Zoom In' msgstr=u''
New msg: msgid=u'Print' msgstr=u''
New msg: msgid=u"If you don't set this it will be determined automatically" msgstr=u''
New msg: msgid=u'Automatic Zoom' msgstr=u''
New msg: msgid=u'Calculating diagnostics...' msgstr=u''
New msg: msgid=u'Explore' msgstr=u''
New msg: msgid=u'Total exercise attempts' msgstr=u''
New msg: msgid=u'Yearly' msgstr=u''
New msg: msgid=u'Points Earned' msgstr=u''
New msg: msgid=u'Unable to establish a session with KA Lite server at %s' msgstr=u''
New msg: msgid=u'Invoked by kalite CLI to run a blocking management command' msgstr=u''
New msg: msgid=u'Browse to page # %(listed_page)s of pages.' msgstr=u''
New msg: msgid=u' Status: ' msgstr=u''
New msg: msgid=u'The order you would like the topic to be displayed.' msgstr=u''
New msg: msgid=u'Loading json object: %s' msgstr=u''
New msg: msgid=u'Create An Organization' msgstr=u''
New msg: msgid=u'Find:' msgstr=u''
New msg: msgid=u'My Progress' msgstr=u''
New msg: msgid=u'Time' msgstr=u''
New msg: msgid=u'Central Server is not reachable; please try again after some time.' msgstr=u''
New msg: msgid=u'Please describe the facilities in more detail, to catch anything not covered above:' msgstr=u''
New msg: msgid=u'Login' msgstr=u''
New msg: msgid=u'Open File' msgstr=u''
New msg: msgid=u'%% Complete:' msgstr=u''
New msg: msgid=u'answer' msgstr=u''
New msg: msgid=u'Open user manual in new window' msgstr=u''
New msg: msgid=u'Account administration' msgstr=u''
New msg: msgid=u'Of those you have completed ' msgstr=u''
New msg: msgid=u'Find in Document' msgstr=u''
New msg: msgid=u'In this topic ' msgstr=u''
New msg: msgid=u'200%' msgstr=u''
New msg: msgid=u'updated by' msgstr=u''
New msg: msgid=u'Registration complete' msgstr=u''
New msg: msgid=u'Begin test' msgstr=u''
New msg: msgid=u'Check Answer' msgstr=u''
New msg: msgid=u'Group Header' msgstr=u''
New msg: msgid=u'Well done - you have finished the quiz!' msgstr=u''
New msg: msgid=u'name' msgstr=u''
New msg: msgid=u'If applicable, please include the URL for your organization:' msgstr=u''
New msg: msgid=u'Fit Page' msgstr=u''
New msg: msgid=u'View Logs' msgstr=u''
New msg: msgid=u'Must specify either command or shell command' msgstr=u''
New msg: msgid=u'Your personal views are your own, but in this case you are not allowed to delete yourself.' msgstr=u''
New msg: msgid=u'Daily' msgstr=u''
New msg: msgid=u'Attempt' msgstr=u''
New msg: msgid=u'Deployments are people who bring one or more copies of KA Lite to a school, community, or country in an organized effort.' msgstr=u''
New msg: msgid=u'Export' msgstr=u''
New msg: msgid=u'View on site' msgstr=u''
New msg: msgid=u'What did you think?' msgstr=u''
New msg: msgid=u's' msgstr=u''
New msg: msgid=u'Incorrect user name or password' msgstr=u''
New msg: msgid=u'Open PDF Reader' msgstr=u''
New msg: msgid=u'The existing computers in these facilities cannot be networked and will serve as standalone server/client devices.' msgstr=u''
New msg: msgid=u'The facilities do not currently have any infrastructure, and we will be supplying hardware.' msgstr=u''
New msg: msgid=u'A valid django-admin command to run.' msgstr=u''
New msg: msgid=u'Sorry, there was an error during registration.' msgstr=u''
New msg: msgid=u'Teach' msgstr=u''
New msg: msgid=u'Space separated list; e.g: arg1 option1=True' msgstr=u''
New msg: msgid=u'Progress report' msgstr=u''
New msg: msgid=u'Test Logs' msgstr=u''
New msg: msgid=u'updated on' msgstr=u''
New msg: msgid=u'Output' msgstr=u''
New msg: msgid=u'Job Details' msgstr=u''
New msg: msgid=u'You are not authorized to access this zone information.' msgstr=u''
New msg: msgid=u'The facilities have occasional internet access, but it is rarely connected and/or very slow (e.g. 3G wireless or dialup).' msgstr=u''
New msg: msgid=u'Rotate Counterclockwise' msgstr=u''
New msg: msgid=u'Stuck? Watch a video.' msgstr=u''
New msg: msgid=u'Modification Date:' msgstr=u''
New msg: msgid=u'Key' msgstr=u''
New msg: msgid=u'Please click the button below when you are ready to begin the test.' msgstr=u''
New msg: msgid=u'Topic, video, exercise...' msgstr=u''
New msg: msgid=u'150%' msgstr=u''
New msg: msgid=u'Author:' msgstr=u''
New msg: msgid=u'Show Attachments' msgstr=u''
New msg: msgid=u'Device Logs' msgstr=u''
New msg: msgid=u'Logout' msgstr=u''
New msg: msgid=u' Not started. ' msgstr=u''
New msg: msgid=u"The job '%(job)s' was run successfully." msgstr=u''
New msg: msgid=u'You have declined to join ' msgstr=u''
New msg: msgid=u'Correct' msgstr=u''
New msg: msgid=u"Only questions with their status set to 'Active' will be displayed. Questions marked as 'Group Header' are treated as such by views and templates that are set up to use them." msgstr=u''
New msg: msgid=u'You have joined ' msgstr=u''
New msg: msgid=u'You have successfully revoked the invitation for %(email)s.' msgstr=u''
New msg: msgid=u'Less Information' msgstr=u''
New msg: msgid=u'This command needs to run within a shell?' msgstr=u''
New msg: msgid=u'Our Mission' msgstr=u''
New msg: msgid=u'Praise' msgstr=u''
New msg: msgid=u'Resource' msgstr=u''
New msg: msgid=u'is protected' msgstr=u''
New msg: msgid=u'by:' msgstr=u''
New msg: msgid=u'Changelog' msgstr=u''
New msg: msgid=u'Email %(deployment.org_name)s' msgstr=u''
New msg: msgid=u'Sign up' msgstr=u''
New msg: msgid=u'Exercise Logs' msgstr=u''
New msg: msgid=u'Topic:' msgstr=u''
New msg: msgid=u'Weekly' msgstr=u''
New msg: msgid=u'Emulates a reoccurring cron call to run jobs at a specified interval.  This is meant primarily for development use.' msgstr=u''
New msg: msgid=u'The order you would like the question to be displayed.' msgstr=u''
New msg: msgid=u'The answer text.' msgstr=u''
New msg: msgid=u'Attempt Logs' msgstr=u''
New msg: msgid=u'Show Document Outline' msgstr=u''
New msg: msgid=u'Please specify an IP (as a GET param).' msgstr=u''
New msg: msgid=u'PDF Version:' msgstr=u''
New msg: msgid=u'Email not specified' msgstr=u''
New msg: msgid=u'Must specify zone information.' msgstr=u''
New msg: msgid=u'If you are reporting the error, please make sure to include the following information:' msgstr=u''
New msg: msgid=u'Next Page' msgstr=u''
New msg: msgid=u'Please send a copy of this support request to the email address above.' msgstr=u''
New msg: msgid=u'Full Width' msgstr=u''
New msg: msgid=u'N/A' msgstr=u''
New msg: msgid=u'You are still working on all of them.' msgstr=u''
New msg: msgid=u'CSV' msgstr=u''
New msg: msgid=u'Docs' msgstr=u''
New msg: msgid=u'Admin' msgstr=u''
New msg: msgid=u'Thumbnails' msgstr=u''
New msg: msgid=u'Time taken' msgstr=u''
New msg: msgid=u'You have already sent an invitation email to this user.' msgstr=u''
New msg: msgid=u'Create Admin Account' msgstr=u''
New msg: msgid=u'Last run' msgstr=u''
New msg: msgid=u'Zone' msgstr=u''
New msg: msgid=u'(No output)' msgstr=u''
New msg: msgid=u'Frequently asked questions' msgstr=u''
New msg: msgid=u'Sorry, this item has not been downloaded.' msgstr=u''
New msg: msgid=u'Search for content' msgstr=u''
New msg: msgid=u'Based on your interest in' msgstr=u''
New msg: msgid=u'Refresh' msgstr=u''
New msg: msgid=u'Tools' msgstr=u''
New msg: msgid=u'(will mark current answer as incorrect)' msgstr=u''
New msg: msgid=u'The facilities have computer labs that have internal networks that student computers can connect to one another through.' msgstr=u''
New msg: msgid=u"You haven't started to work on exercises! " msgstr=u''
New msg: msgid=u'The facilities have a central server that student device can connect to.' msgstr=u''
New msg: msgid=u'Frequency options' msgstr=u''
New msg: msgid=u'The owner of an organization cannot be removed.' msgstr=u''
New msg: msgid=u'File size:' msgstr=u''
New msg: msgid=u'Status' msgstr=u''
New msg: msgid=u'Your comments:' msgstr=u''
New msg: msgid=u"We'll subscribe you via mailchimp when we're in RELEASE mode, %s, we swear!" msgstr=u''
New msg: msgid=u'Need help?' msgstr=u''
New msg: msgid=u'Date Range' msgstr=u''
New msg: msgid=u'last run' msgstr=u''
New msg: msgid=u'Deployments CMS' msgstr=u''
New msg: msgid=u'125%' msgstr=u''
New msg: msgid=u'Inactive' msgstr=u''
New msg: msgid=u'Failure to send data to your KA Lite installation: %s' msgstr=u''
New msg: msgid=u'PDF Producer:' msgstr=u''
New msg: msgid=u'Requires authentication' msgstr=u''
New msg: msgid=u'You are already a part of this organization.' msgstr=u''
New msg: msgid=u'Set true if this question is only visible by authenticated users.' msgstr=u''
Deleted msg: msgid=u'Viewed' msgstr=u''
Deleted msg: msgid=u'Upgrade' msgstr=u''
Deleted msg: msgid=u'Download %(vid_count)d new selected video(s)' msgstr=u''
Deleted msg: msgid=u'Select Exam' msgstr=u''
Deleted msg: msgid=u'Delete %(name)s' msgstr=u''
Deleted msg: msgid=u'Viewing' msgstr=u''
Deleted msg: msgid=u'Exercise Mastery' msgstr=u''
Deleted msg: msgid=u'Item' msgstr=u''
Deleted msg: msgid=u'Release Date' msgstr=u''
Deleted msg: msgid=u'Practice this concept' msgstr=u''
Deleted msg: msgid=u'{{ r.title }}' msgstr=u''
Deleted msg: msgid=u'Exercises' msgstr=u''
Deleted msg: msgid=u'You are not authorized to view this page.' msgstr=u''
Deleted msg: msgid=u'Error starting update process %(status)s: %(responseText)s' msgstr=u''
Deleted msg: msgid=u'Student spending report' msgstr=u''
Deleted msg: msgid=u'Remote version information unavailable.' msgstr=u''
Deleted msg: msgid=u'Could not save AttemptLog' msgstr=u''
Deleted msg: msgid=u'%(avail)s / %(known)s video(s) are available (%(local)s locally).' msgstr=u''
Deleted msg: msgid=u'Results' msgstr=u''
Deleted msg: msgid=u'Released Date' msgstr=u''
Deleted msg: msgid=u'Sorry, you must be logged in to do a quiz.' msgstr=u''
Deleted msg: msgid=u'Incomplete' msgstr=u''
Deleted msg: msgid=u'You cannot update this object.' msgstr=u''
Deleted msg: msgid=u'Are you sure you want to purchase %s for %s points?' msgstr=u''
Deleted msg: msgid=u'Please select either a topic or a playlist above, but not both.' msgstr=u''
Deleted msg: msgid=u'This user has no store transactions.' msgstr=u''
Deleted msg: msgid=u'Select Playlist' msgstr=u''
Deleted msg: msgid=u'This video is not downloaded.' msgstr=u''
Deleted msg: msgid=u'No student accounts have been created.' msgstr=u''
Deleted msg: msgid=u'Student' msgstr=u''
Deleted msg: msgid=u'Delete %(name)s Subtitles' msgstr=u''
Deleted msg: msgid=u'Unit' msgstr=u''
Deleted msg: msgid=u'Contacting central server to register; page will reload upon success.' msgstr=u''
Deleted msg: msgid=u'Last recorded usage' msgstr=u''
Deleted msg: msgid=u'Subtitle available in %(lang_name)s' msgstr=u''
Deleted msg: msgid=u'Test progress not saved.' msgstr=u''
Deleted msg: msgid=u'Operation not implemented.' msgstr=u''
Deleted msg: msgid=u'Confirm Delete' msgstr=u''
Deleted msg: msgid=u'Before changing units, make sure all students have finished purchasing items in the store, etc. Are you sure you want to change the current unit?' msgstr=u''
Deleted msg: msgid=u'You cannot set this test into exam mode.' msgstr=u''
Deleted msg: msgid=u'Update Now!' msgstr=u''
Deleted msg: msgid=u'Invalidate caches' msgstr=u''
Deleted msg: msgid=u'Set as default' msgstr=u''
Deleted msg: msgid=u'Installation finished! Refreshing the page in %(sec)s seconds' msgstr=u''
Deleted msg: msgid=u'Take Test' msgstr=u''
Deleted msg: msgid=u'Update Server Date & Time' msgstr=u''
Deleted msg: msgid=u'Exam Results' msgstr=u''
Deleted msg: msgid=u'Not Started' msgstr=u''
Deleted msg: msgid=u'hide' msgstr=u''
Deleted msg: msgid=u'all groups' msgstr=u''
Deleted msg: msgid=u"Unpacking language pack '%(lang_code)s'" msgstr=u''
Deleted msg: msgid=u'no groups' msgstr=u''
Deleted msg: msgid=u'Sorry, there was an error during registration. Please make sure your device is fully up to date (run %(command)s and then stop/start the server).' msgstr=u''
Deleted msg: msgid=u'New Features' msgstr=u''
Deleted msg: msgid=u'Total Points: %(points)d ' msgstr=u''
Deleted msg: msgid=u'Bugs fixed' msgstr=u''
Deleted msg: msgid=u'The server does not have internet access; videos cannot be downloaded at this time.' msgstr=u''
Deleted msg: msgid=u'If you don\'t have a login, please <a href="%(sign_up_url)s">sign up</a>.' msgstr=u''
Deleted msg: msgid=u'Raspberry Pi Clock Reset' msgstr=u''
Deleted msg: msgid=u'Bored' msgstr=u''
Deleted msg: msgid=u"Are you sure you want to delete '%s'? You will lose all associated student, group, and teacher accounts. If you are sure, type the name of the facility into the box below and press OK." msgstr=u''
Deleted msg: msgid=u'for' msgstr=u''
Deleted msg: msgid=u'Apologies, but there are no videos available for this language.' msgstr=u''
Deleted msg: msgid=u'Not Viewed' msgstr=u''
Deleted msg: msgid=u"You are about to permanently delete the selected group(s). Note that any students currently in this group will now be characterized as 'Ungrouped' but their profiles will not be deleted." msgstr=u''
Deleted msg: msgid=u'Through Git' msgstr=u''
Deleted msg: msgid=u'Subtopics' msgstr=u''
Deleted msg: msgid=u'Input current date (%(date_format)s)' msgstr=u''
Deleted msg: msgid=u'Date Purchased' msgstr=u''
Deleted msg: msgid=u'View Report' msgstr=u''
Deleted msg: msgid=u'Disengaged' msgstr=u''
Deleted msg: msgid=u"If you don't have a login, please contact your administrator." msgstr=u''
Deleted msg: msgid=u'Please try again later.' msgstr=u''
Deleted msg: msgid=u'Update Software' msgstr=u''
Deleted msg: msgid=u'Confirm update' msgstr=u''
Deleted msg: msgid=u'share' msgstr=u''
Deleted msg: msgid=u'Unit ID' msgstr=u''
Deleted msg: msgid=u'Select Report' msgstr=u''
Deleted msg: msgid=u'Y-Axis' msgstr=u''
Deleted msg: msgid=u'Exercise' msgstr=u''
Deleted msg: msgid=u'No report types available.' msgstr=u''
Deleted msg: msgid=u'Moving files to their appropriate local disk locations.' msgstr=u''
Deleted msg: msgid=u'The server does not have internet access; software cannot be updated at this time.' msgstr=u''
Deleted msg: msgid=u'No other tests available to view' msgstr=u''
Deleted msg: msgid=u'Input current time (%(time_format)s - 24 Hour)' msgstr=u''
Deleted msg: msgid=u'Exercise ID not recognized' msgstr=u''
Deleted msg: msgid=u'Dubbed video available in %(lang_name)s' msgstr=u''
Deleted msg: msgid=u'Finished processing language pack %(lang_code)s' msgstr=u''
Deleted msg: msgid=u'Subtitles' msgstr=u''
Deleted msg: msgid=u'Progress by topic' msgstr=u''
Deleted msg: msgid=u'Video ID not recognized.' msgstr=u''
Deleted msg: msgid=u'X-Axis' msgstr=u''
Deleted msg: msgid=u'Answer 1 additional question to finish this exercise.' msgstr=u''
Deleted msg: msgid=u'Please choose a group to move users to.' msgstr=u''
Deleted msg: msgid=u'%(subtitle_count)d Subtitles / %(percent_translated)d%% Translated' msgstr=u''
Deleted msg: msgid=u'Are you sure you want to delete?' msgstr=u''
Deleted msg: msgid=u'Translated' msgstr=u''
Deleted msg: msgid=u'Back' msgstr=u''
Deleted msg: msgid=u"You have not installed KA Lite through Git. Please use the other update methods instead, e.g. 'internet' or 'localzip'" msgstr=u''
Deleted msg: msgid=u'Please select groups first.' msgstr=u''
Deleted msg: msgid=u'You have completed your streak.' msgstr=u''
Deleted msg: msgid=u'Current Installation' msgstr=u''
Deleted msg: msgid=u'Installation Location' msgstr=u''
Deleted msg: msgid=u'Installation finished.' msgstr=u''
Deleted msg: msgid=u'Cost' msgstr=u''
Deleted msg: msgid=u'Latest Version' msgstr=u''
Deleted msg: msgid=u'Student Spending' msgstr=u''
Deleted msg: msgid=u'Answer %(remaining)d additional questions to finish this exercise.' msgstr=u''
Deleted msg: msgid=u'Overall' msgstr=u''
Deleted msg: msgid=u'Current Unit' msgstr=u''
Deleted msg: msgid=u'Store Transactions' msgstr=u''
Deleted msg: msgid=u"You are not authorized to complete the request.  Please <a href='%(login_url)s'>login</a> as an authorized user, then retry the request." msgstr=u''
Deleted msg: msgid=u'Effort versus achievement' msgstr=u''
Deleted msg: msgid=u'The facility has not been deleted. Did you spell the facility name correctly?' msgstr=u''
Deleted msg: msgid=u'You cannot view these objects.' msgstr=u''
Deleted msg: msgid=u'You are about to delete selected users, they will be permanently deleted.' msgstr=u''
Deleted msg: msgid=u'Your installation is offline, and therefore cannot access updates.' msgstr=u''
Deleted msg: msgid=u'Test' msgstr=u''
Deleted msg: msgid=u'Drawing %(xaxis_name)s versus %(yaxis_name)s' msgstr=u''
Deleted msg: msgid=u'Please select a playlist above.' msgstr=u''
Deleted msg: msgid=u'Download and update' msgstr=u''
Deleted msg: msgid=u'None' msgstr=u''
Deleted msg: msgid=u"Creating static files for language pack '%(lang_code)s'" msgstr=u''
Deleted msg: msgid=u"Using local language pack '%(filepath)s'" msgstr=u''
Deleted msg: msgid=u'Mastery over time' msgstr=u''
Deleted msg: msgid=u'Select Topic' msgstr=u''
Deleted msg: msgid=u'Topics Selected' msgstr=u''
Deleted msg: msgid=u'Please select users first.' msgstr=u''
Deleted msg: msgid=u'No student accounts in this group have been created.' msgstr=u''
Deleted msg: msgid=u'On Target' msgstr=u''
Deleted msg: msgid=u'Welcome, %(username)s!' msgstr=u''
Deleted msg: msgid=u'Back to topics' msgstr=u''
Deleted msg: msgid=u'From the internet' msgstr=u''
Deleted msg: msgid=u'Delete %(vid_count)d selected video(s)' msgstr=u''
Deleted msg: msgid=u'Please select a topic above.' msgstr=u''
Deleted msg: msgid=u'The server does not have internet access; language packs cannot be downloaded at this time.' msgstr=u''
Deleted msg: msgid=u'No exam results for this group.' msgstr=u''
Deleted msg: msgid=u'Group Report' msgstr=u''
Deleted msg: msgid=u'Use local file' msgstr=u''
Deleted msg: msgid=u"Downloading language pack '%(lang_code)s'" msgstr=u''
Deleted msg: msgid=u'Deleting the downloaded video(s) will lead to permanent loss of data' msgstr=u''
Deleted msg: msgid=u'Are you sure you want to update your installation of KA Lite? This process is irreversible!' msgstr=u''
Deleted msg: msgid=u'Points Remaining' msgstr=u''
Deleted msg: msgid=u'Available Update' msgstr=u''
Deleted msg: msgid=u"Are you sure you want to delete language pack '%(lang_code)s'" msgstr=u''
Deleted msg: msgid=u"Loading '%(xaxis)s' vs. '%(yaxis)s' ..." msgstr=u''
Deleted msg: msgid=u'<li>(%s)</li>' msgstr=u''
Deleted msg: msgid=u'Mastered' msgstr=u''
Deleted msg: msgid=u'Edit Facility' msgstr=u''
Deleted msg: msgid=u'You are about to move selected users to another group.' msgstr=u''
Deleted msg: msgid=u'Select Student' msgstr=u''
Deleted msg: msgid=u'Select file' msgstr=u''
benjaoming commented 7 years ago

As you see in the above output, for instance New msg: msgid=u'Teach' msgstr=u'' is present.

benjaoming commented 7 years ago

Updated on CrowdIn:

django.po

image

djangojs.po

image

benjaoming commented 7 years ago

Luckily, CrowdIn was smart enough to reuse previous translations. This means that "Teach" remains translated.

I have rebuilt the translations on CrowdIn.. this should have a pretty large effect on the content packs, which should all be rebuilt now @mrpau-eduard

However, the translations percentages have dropped becase there are also completely new strings!

Spanish (previously at 100%):

radinamatic commented 7 years ago

Awesome job @benjaoming :+1:

@mrpau-eduard Don't start building contentpacks until I've translated the remaining strings to Spanish (hopefully today). I'll ping you when they are ready!

benjaoming commented 7 years ago

Fixed in #5485 - pending new content packs

mrpau-eduard commented 7 years ago

Hi @radinamatic ping me when your done and I will rebuilt the contentpacks.

radinamatic commented 7 years ago

@mrpau-eduard I'm done with reviewing Spanish, but let's wait to see if @polilinux-fsrechia can quickly do Portuguese too... :wink:

It should not take too much time, since most of the strings are conserved in the TM from 0.16 version.

@polilinux-fsrechia Ping here when you're done, and we can proceed with building new contentpacks! :tada:

polilinux-fsrechia commented 7 years ago

@radinamatic thanks for the heads up. I will review pt-BR as soon as possible.

radinamatic commented 7 years ago

@polilinux-fsrechia

Awesome! This way we can have two major localized KA Lite up and running perfectly in the new release! :+1:

polilinux-fsrechia commented 7 years ago

@mrpau-eduard @radinamatic Alright, I've finished the remaining pending pt-BR translations for version 0.17.x and the glossary.

I don't remember seeing that glossary before... it is really useful to learn which word to use, and helps keeping all translations consistent :)

I also used this opportunity to fix some of the translation inconsistencies (such as using different translations for the same word in different places). Hopefully the entire translation to pt-BR will look better now!

Thanks again for all the effort you all put into fixing this!!

radinamatic commented 7 years ago

@polilinux-fsrechia Thank you for checking that so fast! :+1:

Good work team! :tada:

benjaoming commented 7 years ago

@polilinux-fsrechia - great work, thanks for being so quick on this! We'll return with a status update after tomorrow's syncup - sorry that they're timezone discriminating - would love to maybe have another syncup and here more about your KA Lite usage - would you be interested in that?

polilinux-fsrechia commented 7 years ago

@benjaoming sure, we can talk about that. I'll send you an e-mail or message to ask about timezone details.