This commit is contained in:
adueck 2023-08-03 15:18:35 +04:00
parent dc93bb2696
commit ceccc91591
2 changed files with 135 additions and 155 deletions

View File

@ -72,7 +72,6 @@ import PhraseBuilder from "./screens/PhraseBuilder";
import { searchAllInflections } from "./lib/search-all-inflections"; import { searchAllInflections } from "./lib/search-all-inflections";
import { addToWordlist } from "./lib/wordlist-database"; import { addToWordlist } from "./lib/wordlist-database";
import ScriptToPhonetics from "./screens/ScriptToPhonetics"; import ScriptToPhonetics from "./screens/ScriptToPhonetics";
import { Modal, Button } from "react-bootstrap";
// to allow Moustrap key combos even when input fields are in focus // to allow Moustrap key combos even when input fields are in focus
Mousetrap.prototype.stopCallback = function () { Mousetrap.prototype.stopCallback = function () {
@ -148,8 +147,6 @@ class App extends Component<RouteComponentProps, State> {
this.handleRefreshReviewTasks = this.handleRefreshReviewTasks.bind(this); this.handleRefreshReviewTasks = this.handleRefreshReviewTasks.bind(this);
this.handleDictionaryUpdate = this.handleDictionaryUpdate.bind(this); this.handleDictionaryUpdate = this.handleDictionaryUpdate.bind(this);
this.handleInflectionSearch = this.handleInflectionSearch.bind(this); this.handleInflectionSearch = this.handleInflectionSearch.bind(this);
this.handleShowModal = this.handleShowModal.bind(this);
this.handleCloseModal = this.handleCloseModal.bind(this);
} }
public componentDidMount() { public componentDidMount() {
@ -587,14 +584,6 @@ class App extends Component<RouteComponentProps, State> {
}); });
} }
private handleCloseModal() {
this.setState({ showModal: false });
}
private handleShowModal() {
this.setState({ showModal: true });
}
render() { render() {
return ( return (
<div <div
@ -668,12 +657,6 @@ class App extends Component<RouteComponentProps, State> {
Grammar Grammar
</a> </a>
</div> </div>
<button
onClick={this.handleShowModal}
className="mt-2 btn btn-secondary"
>
New Phonetics for ی's!! 👀
</button>
</div> </div>
</Route> </Route>
<Route path="/about"> <Route path="/about">
@ -834,87 +817,6 @@ class App extends Component<RouteComponentProps, State> {
/> />
)} )}
</footer> </footer>
<Modal
show={this.state.showModal}
onHide={this.handleCloseModal}
centered
>
<Modal.Header closeButton>
<Modal.Title>Phonetics Update! 📰</Modal.Title>
</Modal.Header>
<Modal.Body>
<p>
The phonetics for{" "}
<span style={{ backgroundColor: "rgba(255,255,0,0.4)" }}>
two of the five ی's have been updated
</span>{" "}
to something much more logical and helpful for pronunciation.
</p>
<h5>Pure Vowels (mouth stays still)</h5>
<table className="table">
<thead>
<tr>
<th scope="col">Letter</th>
<th scope="col">Phonetics</th>
<th scope="col">Sound</th>
</tr>
</thead>
<tbody>
<tr>
<td>ي</td>
<td>ee</td>
<td>long "ee" like "bee"</td>
</tr>
<tr>
<td>ې</td>
<td>e</td>
<td>
<div>
like "ee" but <em>with a slightly more open mouth</em>
</div>
<div className="small">
This is a special vowel <em>not found in English</em>
</div>
</td>
</tr>
</tbody>
</table>
<h5>Dipthongs (pure vowel + y)</h5>
<table className="table">
<thead>
<tr>
<th scope="col">Letter</th>
<th scope="col">Phonetics</th>
<th scope="col">Sound</th>
</tr>
</thead>
<tbody>
<tr style={{ backgroundColor: "rgba(255,255,0,0.4)" }}>
<td>ی</td>
<td>ay</td>
<td>short 'a' + y</td>
</tr>
<tr>
<td>ۍ</td>
<td>uy</td>
<td>'u' shwa (ə) + y</td>
</tr>
<tr style={{ backgroundColor: "rgba(255,255,0,0.4)" }}>
<td>ئ</td>
<td>ey</td>
<td>
<div>'e' (ې) + y</div>
</td>
</tr>
</tbody>
</table>
</Modal.Body>
<Modal.Footer>
<Button variant="secondary" onClick={this.handleCloseModal}>
Close
</Button>
</Modal.Footer>
</Modal>
</div> </div>
); );
} }

View File

@ -12,63 +12,141 @@ import { State } from "../types/dictionary-types";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import VideoPlayer from "../components/VideoPlayer"; import VideoPlayer from "../components/VideoPlayer";
const About = ({ state } : { state: State }) => ( const About = ({ state }: { state: State }) => (
<div className="width-limiter"> <div className="width-limiter">
<Helmet> <Helmet>
<link rel="canonical" href="https://dictionary.lingdocs.com/about" /> <link rel="canonical" href="https://dictionary.lingdocs.com/about" />
<meta name="description" content="About the LingDocs Pashto Dictionary" /> <meta name="description" content="About the LingDocs Pashto Dictionary" />
<title>About - LingDocs Pashto Dictionary</title> <title>About - LingDocs Pashto Dictionary</title>
</Helmet> </Helmet>
<h2>About</h2> <h2>About</h2>
<p>The <strong>LingDocs Pashto Dictionary</strong> aims to make an easily searchable and accessible dictionary of the Pashto Language, along with its inflections and verb conjugations.</p> <p>
<h3>Features</h3> The <strong>LingDocs Pashto Dictionary</strong> aims to make an easily
<ul> searchable and accessible dictionary of the Pashto Language, along with
<li>Approximate search-as-you-type</li> its inflections and verb conjugations.
<li>Alphabetical browsing</li> </p>
<li>Inflections and Verb Conjugations</li> <h3>Features</h3>
<li>Phrase Generation Engine</li> <ul>
<li>Ability to suggest additions or corrections (with sign-in)</li> <li>Approximate search-as-you-type</li>
<li>Choice of spelling/phonetic systems</li> <li>Alphabetical browsing</li>
<li>...and more</li> <li>Inflections and Verb Conjugations</li>
</ul> <li>Phrase Generation Engine</li>
<h3>Video Introduction</h3> <li>Ability to suggest additions or corrections (with sign-in)</li>
<VideoPlayer url="https://www.youtube.com/watch?v=MMpSpaMMdp4&t=1s&ab_channel=LingDocs" /> <li>Choice of spelling/phonetic systems</li>
<h3>Installing</h3> <li>...and more</li>
<p>After visiting this dictionary for the first time it will be accessible from your browser even without an internet connection. You can also </ul>
{` `}<strong>install it as an app</strong> on your phone or desktop by choosing "Add to Home Screen" on "Install" on your browser menu. It is also <h3>Video Introduction</h3>
{` `}<a href="https://play.google.com/store/apps/details?id=com.lingdocs.pashto.dictionary">find and install it on the Google Play Store</a>.</p> <VideoPlayer url="https://www.youtube.com/watch?v=MMpSpaMMdp4&t=1s&ab_channel=LingDocs" />
<h3>Phonetic System</h3> <h3>Installing</h3>
<p>This dictionary (and the <a href="https://grammar.lingdocs.com">grammar</a> that goes along with it) uses a <a href="https://grammar.lingdocs.com/writing/phonetics/">special phonetic system</a> for writing the Pashto words in Latin letters, showing the pronunciation the vowels. This has been designed to allow people to write and search words <em>without needing to type an special characters</em>.</p> <p>
<h3>Inspiration and Sources</h3> After visiting this dictionary for the first time it will be accessible
<p>This dictionary is grateful for and indebted to the excellent work available from your browser even without an internet connection. You can also
at <a href="https://qamosona.com/">qamosona.com</a>, <a href="https://www.wiktionary.org/">wiktionary.org</a>, {` `}
and <a href="https://translate.google.com/">Google Translate</a>. These sources were used extensively as a reference for definitions.</p> <strong>install it as an app</strong> on your phone or desktop by choosing
<p>Currently this dictionary contains {state.dictionaryInfo ? state.dictionaryInfo.numberOfEntries : "about 14,000"} entries. It is nowhere near as comprehensive "Add to Home Screen" on "Install" on your browser menu. It is also
or accurate as some of these other sources, but it does strive to present something uniquely {` `}
accesible to learners through offline web-app availability, inflection/conjugation/phrase-building engine, and smart searching algorithms.</p> <a href="https://play.google.com/store/apps/details?id=com.lingdocs.pashto.dictionary">
<h3>Contact</h3> find and install it on the Google Play Store
<p>Feedback and suggestions are appreciated.</p> </a>
<ul> .
<li>Twitter: <a href="https://twitter.com/@lingdocs">@lingdocs</a></li> </p>
<li>Reddit: <a href="https://reddit.com/r/lingdocs">/r/lingdocs</a></li> <h3>Phonetic System</h3>
<li>YouTube: <a href="https://www.youtube.com/channel/UC1-yjDec5VDtia5s1gcMw4A">LingDocs YouTube Channel</a></li> <p>
<li>Email: dev234 AT lingdocs DOT com</li> This dictionary (and the{" "}
</ul> <a href="https://grammar.lingdocs.com">grammar</a> that goes along with
<h3>License and Legal Info</h3> it) uses a{" "}
<h4>Source Code</h4> <a href="https://grammar.lingdocs.com/writing/phonetics/">
<p>This dictionary app is open sounce. The code is available <a href="https://github.com/lingdocs/pashto-dictionary">here on GitHub</a> and is licensed under a GPLv3 License.</p> special phonetic system
<h4>Dictionary Content</h4> </a>{" "}
<p>The contents of this dictionary are licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>, with the added stipulation that this material cannot be used or re-distributed by any people or groups involved with military, violence, or government intelligence work.</p> for writing the Pashto words in Latin letters, showing the pronunciation
<p>The LingDocs Pashto Dictionary assumes no responsibility or liability for any errors or omissions in the vowels. This has been designed to allow people to write and search
the content of this site. The information contained in this site is provided on an as is basis with words <em>without needing to type an special characters</em>.
no guarantees of completeness, accuracy, usefulness or timeliness.</p> </p>
<p><Link to="/privacy">Privacy Policy</Link></p> <h3>Inspiration and Sources</h3>
<p>© Copyright 2021 - <a href="https://www.lingdocs.com/">lingdocs.com</a></p> <p>
{state.dictionaryInfo && <p className="text-muted"> This dictionary is grateful for and indebted to the excellent work
Number of Entries: {state.dictionaryInfo.numberOfEntries} - Updated: {dayjs(state.dictionaryInfo.release).toString()} available at <a href="https://qamosona.com/">qamosona.com</a>,{" "}
</p>} <a href="https://www.wiktionary.org/">wiktionary.org</a>, and{" "}
{process.env.REACT_APP_BUILD_NO && <p className="small text-muted">App build number: {process.env.REACT_APP_BUILD_NO}</p>} <a href="https://translate.google.com/">Google Translate</a>. These
</div> sources were used extensively as a reference for definitions.
</p>
<p>
Currently this dictionary contains{" "}
{state.dictionaryInfo
? state.dictionaryInfo.numberOfEntries
: "about 15,000"}{" "}
entries. It is nowhere near as comprehensive or accurate as some of these
other sources, but it does strive to present something uniquely accesible
to learners through offline web-app availability,
inflection/conjugation/phrase-building engine, and smart searching
algorithms.
</p>
<h3>Contact</h3>
<p>Feedback and suggestions are appreciated.</p>
<ul>
<li>
Twitter: <a href="https://twitter.com/@lingdocs">@lingdocs</a>
</li>
<li>
Reddit: <a href="https://reddit.com/r/lingdocs">/r/lingdocs</a>
</li>
<li>
YouTube:{" "}
<a href="https://www.youtube.com/channel/UC1-yjDec5VDtia5s1gcMw4A">
LingDocs YouTube Channel
</a>
</li>
<li>Email: dev234 AT lingdocs DOT com</li>
</ul>
<p>
Or show your support through{" "}
<a href="https://www.buymeacoffee.com/lingdocsdev">buymeacoffee</a>
</p>
<h3>License and Legal Info</h3>
<h4>Source Code</h4>
<p>
This dictionary app is open sounce. The code is available{" "}
<a href="https://github.com/lingdocs/pashto-dictionary">here on GitHub</a>{" "}
and is licensed under a GPLv3 License.
</p>
<h4>Dictionary Content</h4>
<p>
The contents of this dictionary are licensed under a{" "}
<a
rel="license"
href="https://creativecommons.org/licenses/by-nc-sa/4.0/"
>
Creative Commons Creative Commons Attribution-NonCommercial-ShareAlike
4.0 International License
</a>
, with the added stipulation that this material cannot be used or
re-distributed by any people or groups involved with military, violence,
or government intelligence work.
</p>
<p>
The LingDocs Pashto Dictionary assumes no responsibility or liability for
any errors or omissions in the content of this site. The information
contained in this site is provided on an as is basis with no guarantees
of completeness, accuracy, usefulness or timeliness.
</p>
<p>
<Link to="/privacy">Privacy Policy</Link>
</p>
<p>
© Copyright 2023 - <a href="https://www.lingdocs.com/">lingdocs.com</a>
</p>
{state.dictionaryInfo && (
<p className="text-muted">
Number of Entries: {state.dictionaryInfo.numberOfEntries} - Updated:{" "}
{dayjs(state.dictionaryInfo.release).toString()}
</p>
)}
{process.env.REACT_APP_BUILD_NO && (
<p className="small text-muted">
App build number: {process.env.REACT_APP_BUILD_NO}
</p>
)}
</div>
); );
export default About; export default About;