56 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
	
	
{% extends 'base.html' %} 
 | 
						|
{% load i18n %}
 | 
						|
{% load markdown_deux_tags %}
 | 
						|
{% block head_title %}{% trans "Find a sentence" %}{% endblock %}
 | 
						|
{% block title %}{% trans "Find a sentence" %}{% endblock %}
 | 
						|
{% block content %}
 | 
						|
<script src='https://code.responsivevoice.org/responsivevoice.js'></script>
 | 
						|
<section aria-label="{% trans "Search" %}">
 | 
						|
<form method="GET">
 | 
						|
        {{ search_form.as_p }}
 | 
						|
    <button>{% trans "Search" %}</button>
 | 
						|
</form>
 | 
						|
</section>
 | 
						|
{% if posts %}
 | 
						|
<h2>{% trans "Showing results" %}</h2>
 | 
						|
        <script type="text/javascript">
 | 
						|
            responsiveVoice.setDefaultVoice("{{lang}} Female");
 | 
						|
    </script>
 | 
						|
<ul>
 | 
						|
{% for post in posts %}
 | 
						|
<li><a href="javascript:void(0);" onclick="responsiveVoice.speak('{{ post.phrase|addslashes }}')">{{ post.phrase }}</a></li>
 | 
						|
        {% endfor %}
 | 
						|
</ul>
 | 
						|
<div class="pagination">
 | 
						|
    <span class="step-links">
 | 
						|
        {% if posts.has_previous %}
 | 
						|
            <a href="?page=1{{ extra_params }}">{% trans "« first" %}</a>
 | 
						|
            <a href="?page={{ posts.previous_page_number }}{{ extra_params }}">{% trans "previous" %}</a>
 | 
						|
        {% endif %}
 | 
						|
        <span class="current">
 | 
						|
 Page {{ posts.number }} of {{ posts.paginator.num_pages }}.
 | 
						|
        </span>
 | 
						|
        {% if posts.has_next %}
 | 
						|
            <a href="?page={{ posts.next_page_number }}{{ extra_params }}">{% trans "next" %}</a>
 | 
						|
            <a href="?page={{ posts.paginator.num_pages }}{{ extra_params }}">{% trans "last »" %}</a>
 | 
						|
        {% endif %}
 | 
						|
    </span>
 | 
						|
</div>
 | 
						|
{% else %}
 | 
						|
<h2>How it works?</h2>
 | 
						|
 | 
						|
<p>This simple Django application has been created to help me studying russian sentences and later has been extended to add multiple languages. It works by querying a database wich already contains the complete list of sentences found in the <a href="https://tatoeba.org/">Tatoeba project </a> for the supported languages. Right now, the database contains {{total}} sentences, so things may go slow from time to time once a search has been started. Every page will contain a maximum of 100 sentences, and you can go to the next, previous, first or last page, if there are more than 100 results.</p>
 | 
						|
 | 
						|
<p>Additionally, you can click in any sentence to hear how it should be spoken.</p>
 | 
						|
 | 
						|
<h2>Caveats</h2>
 | 
						|
 | 
						|
<ul><li>Searches are made with "like"statements in the DJango ORM. It means that they are not exact and searching a word may find other similar ones (for example, searching читаю may return sentences including similar words like прочитаю, считаю, читают; searching testing may include results like protesting, etc).</li>
 | 
						|
<li>Text to speech is made with the Google Text to Speech engine and should work in All HTML 5 compatible browsers (Firefox and Chrome in windows have been tested, and Chrome in Android).</li></ul>
 | 
						|
 | 
						|
<h2>Resources</h2>
 | 
						|
 | 
						|
<p>For this application, I have used the <a href="https://tatoeba.org"/>Tatoeba project</a> for extracting all phrases from their <a href="https://tatoeba.org/downloads">CSV sentence files,</a> and the <a href="https://responsivevoice.org/">responsive voice library</a> for generating a cross platform text to speech result.</p>
 | 
						|
{% endif %}
 | 
						|
{% endblock %}
 |