Commit 58ed3d57 authored by Jérôme Ortais's avatar Jérôme Ortais
Browse files

Merge branch 'pr/9' into develop

Conflicts:
	src/pyromaths/ex/cinquiemes/priorites.py
	src/pyromaths/ex/cinquiemes/relatifs.py
	src/pyromaths/ex/cinquiemes/reperage.py
	src/pyromaths/ex/cinquiemes/symetrie.py
	src/pyromaths/interface.py
parents fed8a92b 2b99bb5f
[Pyromaths](http://pyromaths.org/) est un programme qui a pour but de créer des exercices type de mathématiques niveau collège et lycée ainsi que leur corrigé. C'est ce qu'on appelle parfois un exerciseur. Contrairement à de nombreux autres projets, Pyromaths a pour objectif de proposer une correction véritablement détaillée des exercices proposés et pas seulement une solution.
Il permet par exemple de proposer des devoirs maison aux élèves et de leur distribuer ensuite la correction. Il peut aussi servir à des familles afin qu'un élève puisse travailler un point du programme et se corriger ensuite.
Si vous voulez participer à la traduction, consultez [cette page](https://github.com/Pyromaths/pyromaths/blob/develop/locale/TRADUIRE.md).
......@@ -4,6 +4,7 @@ Version=1.0
Name=Pyromaths
Comment=Generator for math worksheets for french college
Comment[fr]=Générateur d'exercices de maths
Comment[pl]=Generator zadań matematycznych
Exec=/usr/bin/pyromaths
Terminal=false
Type=Application
......
......@@ -92,9 +92,9 @@ Le support audio et vidéo est désactivé.</translation>
<context>
<name>Phonon::Gstreamer::MediaObject</name>
<message>
<source>Cannot start playback.
<source>Cannot start playback.
Check your Gstreamer installation and make sure you
Check your Gstreamer installation and make sure you
have libgstreamer-plugins-base installed.</source>
<translation>Impossible de démarrer la lecture. Verifiez votre installation de Gstreamer et assuez-vousd&apos;avoir installé libgstreamer-plugins-base.</translation>
</message>
......@@ -5322,4 +5322,4 @@ Veuillez choisir un nom de fichier différent.</translation>
<translation>Défiler vers le bas</translation>
</message>
</context>
</TS>
\ No newline at end of file
</TS>
## Conditions préalables pour traduire:
- gettext
- msgfmt
### OS X:
Vous devez d'abord installer [brew](http://brew.sh). Après, éxecutez
```
brew install gettext
```
### Unix:
Tout les distributions des systèmes Unix fournissent Gettext et Msgfmt par défaut.
### Windows:
Gettext est [](http://gnuwin32.sourceforge.net/packages/gettext.htm).
## Géneration des fichiers à traduire
Pour obtenir le fichier `.po`, lancez
```
xgettext -L Python -d pyromaths --from-code utf-8 -o locale/pyromaths.pot -f locale/traductibles
```
depuis répertoire racine du code source.
Créez le répertoire de nom de votre [code de langue](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) dans '/locale/'.
Dedans, il faut qu'un nouveau répertoire existe: `LC_MESSAGES`.
Copiez le fichier `.pot` dans le répertoire crée sous le nom de `.po`, (exemple pour Italien):
```
cp pyromaths.pot it/LC_MESSAGES/pyromaths.po
```
Pour copiage le fichier `.pot` vers tout les répertoires de langue, lancez depuis `/locale/`:
```
find . -name "LC_MESSAGES" -exec cp pyromaths.pot {}/pyromaths.po \;
```
## Traduction
Dans le fichier `pyromaths.po`, modifiez chaque couple de `msgid` et `msgstr`, comme dans exemple (anglais):
```
msgid "Quitter"
msgstr "Quit"
```
## Finir
Après avoir traduit ce que vous voulez, mettez à jour les fichiers binaires `.mo` depuis votre répertoire de langue (p. ex. `/locale/it/LC_MESSAGES`) pour voir les résultats:
```
msgfmt -o pyromaths.mo pyromaths.po
```
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# Cette fichier comporte un liste des fichiers source qui ont des strings pour traduire.
src/pyromaths/interface.py
src/pyromaths/Values.py
src/pyromaths/ex/cinquiemes/__init__.py
src/pyromaths/ex/cinquiemes/aires.py
src/pyromaths/ex/cinquiemes/construction.py
src/pyromaths/ex/cinquiemes/fractions.py
src/pyromaths/ex/cinquiemes/priorites.py
src/pyromaths/ex/cinquiemes/proportionnalite.py
src/pyromaths/ex/cinquiemes/relatifs.py
src/pyromaths/ex/cinquiemes/reperage.py
src/pyromaths/ex/cinquiemes/statistiques.py
src/pyromaths/ex/cinquiemes/symetrie.py
src/pyromaths/ex/examples/helloworld.py
src/pyromaths/ex/lycee/__init__.py
src/pyromaths/ex/lycee/CercleTrigo.py
src/pyromaths/ex/lycee/Derivation.py
### src/pyromaths/ex/lycee/equations.py
src/pyromaths/ex/lycee/ExoPolynome.py
src/pyromaths/ex/lycee/ExoSecondDegre.py
src/pyromaths/ex/lycee/Fonction.py
src/pyromaths/ex/lycee/SecondDegre.py
src/pyromaths/ex/lycee/Statitisiques.py
src/pyromaths/ex/lycee/VariationsFonctions.py
src/pyromaths/ex/lycee/Vecteurs.py
src/pyromaths/outils/Arithmetique.py
src/pyromaths/outils/Priorites3.py
src/pyromaths/outils/System.py
src/pyromaths/outils/TestEnv.py
src/pyromaths/outils/TexFiles.py
src/pyromaths/outils/TeXMiseEnForme.py
......@@ -64,9 +64,9 @@ else:
VERSION = '15.02'
COPYRIGHT_YEAR = strftime('%Y')
COPYRIGHTS = u'© 2006 – %s Jérôme Ortais<br/>\n' \
COPYRIGHTS = _(u'© 2006 – %s Jérôme Ortais<br/>\n' \
u'<span style=" font-size:small;">Pyromaths est distribué sous ' \
u'licence GPL.</span>' % (COPYRIGHT_YEAR)
u'licence GPL.</span>') % (COPYRIGHT_YEAR)
WEBSITE = 'http://www.pyromaths.org/'
DATADIR = data_dir()
ICONDIR = icon_dir()
......
......@@ -20,5 +20,5 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
description = u'5.Cinquième'
description = _(u'5.Cinquième')
level = description
......@@ -40,13 +40,13 @@ def exo_aire_diques():
rayon2 = int(1.5 * rayon1)
i = random.randrange(2)
if i == 0:
donnees = ('rayons', rayon1, rayon2)
donnees = (_('rayons'), rayon1, rayon2)
else:
donnees = (u'diamètres', 2 * rayon1, 2 * rayon2)
donnees = (_(u'diamètres'), 2 * rayon1, 2 * rayon2)
difference_des_carres = rayon2 ** 2 - rayon1 ** 2
aire_arrondie = arrondir(str(3.14 * difference_des_carres))
enonce = \
u"""\\begin{minipage}{4cm}
_(u"""\\begin{minipage}{4cm}
\\begin{pspicture}(-2,-2)(2,2)
\\pscircle[fillstyle=solid](0,0){1.5}
\\pscircle[fillstyle=solid, fillcolor=white](0,0){1}
......@@ -56,28 +56,28 @@ def exo_aire_diques():
\\end{minipage}\\hfill
\\begin{minipage}{13cm}
On considère deux cercles de centre $O$ et de %s respectifs $\\unit[%s]{cm}$ et $\\unit[%s]{cm}$.\\par
Calculer l'aire de la couronne circulaire (partie colorée) comprise entre les deux cercles en arrondissant le résultat au $\\unit{cm^2}$ le plus proche.""" % donnees
Calculer l'aire de la couronne circulaire (partie colorée) comprise entre les deux cercles en arrondissant le résultat au $\\unit{cm^2}$ le plus proche.""") % donnees
exo.append(enonce)
cor.append(enonce)
cor.append("\\par\\dotfill{}\\\\\n")
if i == 0:
cor.append(u"On calcule l'aire du disque de rayon $\\unit[%s]{cm}$:" % rayon2)
cor.append(u"\\[\\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\\]" % (rayon2, rayon2, rayon2, decimaux(rayon2 ** 2)))
cor.append(u"On calcule l'aire du disque de rayon $\\unit[%s]{cm}$:" % rayon1)
cor.append(u"\\[ \\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\]" % (rayon1, rayon1, rayon1, decimaux(rayon1 ** 2)))
cor.append(_(u"On calcule l'aire du disque de rayon $\\unit[%s]{cm}$:") % rayon2)
cor.append(_(u"\\[\\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\\]") % (rayon2, rayon2, rayon2, decimaux(rayon2 ** 2)))
cor.append(_(u"On calcule l'aire du disque de rayon $\\unit[%s]{cm}$:") % rayon1)
cor.append(_(u"\\[ \\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\]") % (rayon1, rayon1, rayon1, decimaux(rayon1 ** 2)))
else:
cor.append(u"Un disque de diamètre $\\unit[%s]{cm}$ a pour rayon $%s \div 2 = \\unit[%s]{cm}$. Calculons son aire:" % (2 * rayon2, 2 * rayon2, rayon2))
cor.append(u"\\[\\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\\]" % (rayon2, rayon2, rayon2, decimaux(rayon2 ** 2)))
cor.append(u"Un disque de diamètre $\\unit[%s]{cm}$ a pour rayon $%s \div 2 = \\unit[%s]{cm}$. Calculons son aire:" % (2 * rayon1, 2 * rayon1, rayon1))
cor.append(u"\\[\\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\\]" % (rayon1, rayon1, rayon1, decimaux(rayon1 ** 2)))
cor.append(u"L'aire $\\mathcal{A}$ de la couronne est obtenue en retranchant l'aire du disque de rayon $\\unit[%s]{cm}$ à l'aire du disque de rayon $\\unit[%s]{cm}$:" % (rayon1, rayon2))
cor.append(_(u"Un disque de diamètre $\\unit[%s]{cm}$ a pour rayon $%s \div 2 = \\unit[%s]{cm}$. Calculons son aire:") % (2 * rayon2, 2 * rayon2, rayon2))
cor.append(_(u"\\[\\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\\]") % (rayon2, rayon2, rayon2, decimaux(rayon2 ** 2)))
cor.append(_(u"Un disque de diamètre $\\unit[%s]{cm}$ a pour rayon $%s \div 2 = \\unit[%s]{cm}$. Calculons son aire:") % (2 * rayon1, 2 * rayon1, rayon1))
cor.append(_(u"\\[\\pi \\times %s^2 = \\pi \\times %s \\times %s = \\unit[%s \\pi]{cm^2}\\]") % (rayon1, rayon1, rayon1, decimaux(rayon1 ** 2)))
cor.append(_(u"L'aire $\\mathcal{A}$ de la couronne est obtenue en retranchant l'aire du disque de rayon $\\unit[%s]{cm}$ à l'aire du disque de rayon $\\unit[%s]{cm}$:") % (rayon1, rayon2))
cor.append(u"\\[\\mathcal{A} = %s \\pi - %s \\pi= (%s - %s)\\pi =\\unit[%s \\pi]{cm^2}\\]" % (decimaux(rayon2 ** 2), decimaux(rayon1 ** 2), decimaux(rayon2 ** 2), decimaux(rayon1 ** 2), decimaux(difference_des_carres)))
cor.append(u"L'aire exacte de la couronne est $\\unit[%s \\pi]{cm^2}$." % (decimaux(difference_des_carres)))
cor.append(u"En prenant 3,14 comme valeur approchée du nombre $\\pi$, on obtient :")
cor.append(_(u"L'aire exacte de la couronne est $\\unit[%s \\pi]{cm^2}$.") % (decimaux(difference_des_carres)))
cor.append(_(u"En prenant 3,14 comme valeur approchée du nombre $\\pi$, on obtient :"))
cor.append(u"\\[\\mathcal{A} \\approx %s \\times 3,14\\]" % decimaux(difference_des_carres))
cor.append(u"\\[\\boxed{\\mathcal{A} \\approx \\unit[%s]{cm^2}}\\]" % decimaux(aire_arrondie))
exo.append("\\end{minipage}\n")
cor.append("\\end{minipage}\n")
return (exo, cor)
exo_aire_diques.description = u'Aire de disques'
exo_aire_diques.description = _(u'Aire de disques')
This diff is collapsed.
......@@ -28,9 +28,9 @@ from pyromaths.outils.Priorites3 import texify, priorites
def fractions_egales():
exo = ["\\exercice", u"Compléter :", "\\begin{multicols}{4}",
exo = ["\\exercice", _(u"Compléter :"), "\\begin{multicols}{4}",
" \\begin{enumerate}"]
cor = ["\\exercice*", u"Compléter :", "\\begin{multicols}{4}",
cor = ["\\exercice*", _(u"Compléter :"), "\\begin{multicols}{4}",
" \\begin{enumerate}"]
for dummy in range(8):
n = d = 1
......@@ -54,13 +54,13 @@ def fractions_egales():
else:
solution.insert(4, c)
solution.insert(3, c)
exo.append("\\item $\\dfrac{%s}{%s}=\\dfrac{%s}{%s}$" %
exo.append("\\item $\\dfrac{%s}{%s}=\\dfrac{%s}{%s}$" %
tuple(enonce))
if cas:
cor.append("\\item $\\dfrac{%s_{(\\times %s)}}{%s_{(\\times %s)}}=\\dfrac{%s}{%s}$" %
cor.append("\\item $\\dfrac{%s_{(\\times %s)}}{%s_{(\\times %s)}}=\\dfrac{%s}{%s}$" %
tuple(solution))
else:
cor.append("\\item $\\dfrac{%s}{%s}=\\dfrac{%s_{(\\times %s)}}{%s_{(\\times %s)}}$" %
cor.append("\\item $\\dfrac{%s}{%s}=\\dfrac{%s_{(\\times %s)}}{%s_{(\\times %s)}}$" %
tuple(solution))
exo.extend([" \\end{enumerate}", "\end{multicols}\n"])
cor.extend([" \\end{enumerate}", "\end{multicols}\n"])
......@@ -77,46 +77,46 @@ def valeurs_somme():
op = "+-"[random.randrange(2)]
n2, d2 = random.randrange(1, 11), random.randrange(2, 11)
if op == "-" and 1 - n2 / d2 > 0:
l.append('1 %s Fraction(%s, %s)' % (op, n2, d2))
l.append(_('1 %s Fraction(%s, %s)') % (op, n2, d2))
else:
l.append('Fraction(%s, %s) %s 1' % (n2, d2, op))
l.append(_('Fraction(%s, %s) %s 1') % (n2, d2, op))
for dummy in range(2):
op = "+-"[random.randrange(2)]
n1 = random.randrange(2, 11)
n2, d2 = random.randrange(1, 11), random.randrange(2, 11)
if op == "-" and n1 - n2 / d2 > 0:
l.append('%s %s Fraction(%s, %s)' % (n1, op, n2, d2))
l.append(_('%s %s Fraction(%s, %s)') % (n1, op, n2, d2))
else:
l.append('Fraction(%s, %s) %s %s' % (n2, d2, op, n1))
l.append(_('Fraction(%s, %s) %s %s') % (n2, d2, op, n1))
op = "+-"[random.randrange(2)]
n1 = random.randrange(1, 11)
n2, d2 = random.randrange(1, 11), random.randrange(2, 11)
if op == "-" and n1 - n2 > 0:
l.append('Fraction(%s, %s) %s Fraction(%s, %s)' % (n1, d2, op, n2, d2))
l.append(_('Fraction(%s, %s) %s Fraction(%s, %s)') % (n1, d2, op, n2, d2))
else:
l.append('Fraction(%s, %s) %s Fraction(%s, %s)' % (n2, d2, op, n1, d2))
l.append(_('Fraction(%s, %s) %s Fraction(%s, %s)') % (n2, d2, op, n1, d2))
for dummy in range(3):
op = "+-"[random.randrange(2)]
n1, d1 = random.randrange(1, 11), random.randrange(2, 11)
n2, d2 = random.randrange(1, 11), random.randrange(2, 11) * d1
if op == "-" and n1 / d1 - n2 / d2 > 0:
l.append('Fraction(%s, %s) %s Fraction(%s, %s)' % (n1, d1, op, n2, d2))
l.append(_('Fraction(%s, %s) %s Fraction(%s, %s)') % (n1, d1, op, n2, d2))
else:
l.append('Fraction(%s, %s) %s Fraction(%s, %s)' % (n2, d2, op, n1, d1))
l.append(_('Fraction(%s, %s) %s Fraction(%s, %s)') % (n2, d2, op, n1, d1))
random.shuffle(l)
return l
def sommes_fractions():
exo = ["\\exercice",
u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible).",
exo = [_("\\exercice"),
_(u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible)."),
"\\begin{multicols}{4}", " \\begin{enumerate}"]
cor = ["\\exercice*",
u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible).",
cor = [_("\\exercice*"),
_(u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible)."),
"\\begin{multicols}{4}", " \\begin{enumerate}"]
lexo = valeurs_somme()
for question in lexo:
......@@ -133,7 +133,7 @@ def sommes_fractions():
cor.extend([" \\end{enumerate}", "\\end{multicols}"])
return (exo, cor)
sommes_fractions.description = u'Sommes de fractions'
sommes_fractions.description = _(u'Sommes de fractions')
def valeurs_produit():
......@@ -151,16 +151,16 @@ def valeurs_produit():
n2 = random.randrange(1, 11)
d2 = random.randrange(2, 11)
l.append('Fraction(%s, %s)*Fraction(%s,%s)' % (n1 * a, d1 * b, n2 * b, d2 * a))
l.append(_('Fraction(%s, %s)*Fraction(%s,%s)') % (n1 * a, d1 * b, n2 * b, d2 * a))
return l
def produits_fractions():
exo = ["\\exercice",
u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible).",
_(u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible)."),
"\\begin{multicols}{4}", " \\begin{enumerate}"]
cor = ["\\exercice*",
u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible).",
_(u"Calculer en détaillant les étapes. Donner le résultat sous la forme d’une fraction la plus simple possible (ou d’un entier lorsque c’est possible)."),
"\\begin{multicols}{4}", " \\begin{enumerate}"]
lexo = valeurs_produit()
for question in lexo:
......@@ -178,4 +178,4 @@ def produits_fractions():
return (exo, cor)
produits_fractions.description = u'Produits de fractions'
produits_fractions.description = _(u'Produits de fractions')
......@@ -158,7 +158,7 @@ def verifie_calcul(listoperateurs, listoperandes, entier=1):
loperateurs[index + 1:].index(')'):
nbpar = p
if loperateurs[index + 2] == ')':
a = calcul(loperandes[(index + 1) - nbpar], loperateurs[index +
a = calcul(loperandes[(index + 1) - nbpar], loperateurs[index +
1], loperandes[(index + 2) - nbpar], entier)
if a != 'hp':
al = loperateurs[:index]
......@@ -178,7 +178,7 @@ def verifie_calcul(listoperateurs, listoperandes, entier=1):
if nbdiv:
indexd = loperateurs.index('/')
index = min(indexm, indexd)
a = calcul(loperandes[index], loperateurs[index], loperandes[index +
a = calcul(loperandes[index], loperateurs[index], loperandes[index +
1], entier)
if a != 'hp':
al = loperateurs[:index]
......@@ -248,18 +248,18 @@ def priorites():
i = i + 1
for j in range(len(liste[0])):
if j == 0:
exo.append("\\[ \\thenocalcul = %s \\]" %
exo.append("\\[ \\thenocalcul = %s \\]" %
affichage(liste[0][j], liste[1][j]))
exo.append('\\stepcounter{nocalcul}%')
if j == len(liste[0]) - 1:
cor.append("\\[ \\boxed{\\thenocalcul = %s} \\]" %
cor.append("\\[ \\boxed{\\thenocalcul = %s} \\]" %
affichage(liste[0][j], liste[1][j]))
cor.append('\\stepcounter{nocalcul}%')
else:
cor.append("\\[ \\thenocalcul = %s \\]" %
cor.append("\\[ \\thenocalcul = %s \\]" %
affichage(liste[0][j], liste[1][j]))
exo.append("\\end{multicols}")
cor.append("\\end{multicols}")
return (exo, cor)
priorites.description = u'Priorités opératoires'
priorites.description = _(u'Priorités opératoires')
......@@ -56,16 +56,16 @@ def exo_echelles():
# yH = b
# Calculs des grandeurs réelles en mm !
reels = [echelle * a, echelle * b, echelle * c, echelle * d]
plan = [a, b, c, d]
# choix permet de choisir si on donne a, b, c ou d en énoncé
choix = randrange(4)
reponses = ["a", "b", "c", "d"]
enonce = reponses.pop(choix)
# sur la deuxième ligne du tableau, on écrit en cm, en gras, les nombres calculés
tab_reels = [ "\\bf"*(i != choix) + decimaux(reels[i] / 10.0) for i in range(4)]
# Pour placer les quatre lettres sur le plan
cotation_couleur = [["a", ""],
["b", ""],
......@@ -73,7 +73,7 @@ def exo_echelles():
["d", ""]]
# la longueur donnée est tracée en bleu
cotation_couleur[choix][1] = "enonce"
# figure PSTricks en fonction des paramètres a, d, xE, XF, yF
figure = ["\\psset{PointName = none, PointSymbol = none, unit = 1mm, linewidth = .5pt}",
"\\definecolor{enonce}{rgb}{0.11,0.56,0.98}",
......@@ -100,43 +100,43 @@ def exo_echelles():
"\\end{pspicture}"]
exo = [u"\\exercice Sur ce plan, la longueur $%s$ mesure en réalité \\unit[%s]{m} :\n" % (enonce, decimaux(reels[choix] / 1000.0))] \
exo = [_(u"\\exercice Sur ce plan, la longueur $%s$ mesure en réalité \\unit[%s]{m} :\n") % (enonce, decimaux(reels[choix] / 1000.0))] \
+ figure + \
["\\begin{enumerate}",
u"\\item Déterminer l'échelle de ce plan.",
u"\\item Déterminer les longueurs réelles $%s$, $%s$ et $%s$." % (reponses[0], reponses[1], reponses[2]),
_(u"\\item Déterminer l'échelle de ce plan."),
_(u"\\item Déterminer les longueurs réelles $%s$, $%s$ et $%s$.") % (reponses[0], reponses[1], reponses[2]),
"\\end{enumerate}"]
cor = [u"\\exercice* Sur ce plan, la longueur $%s$ mesure en réalité \\unit[%s]{m} : \n" % (enonce, decimaux(reels[choix] / 1000.0))] \
cor = [_(u"\\exercice* Sur ce plan, la longueur $%s$ mesure en réalité \\unit[%s]{m} : \n") % (enonce, decimaux(reels[choix] / 1000.0))] \
+ figure + \
["\\begin{enumerate}",
u"\\item Déterminer l'échelle de ce plan.\\par",
u"Sur le plan, je mesure que $%s=\\unit[%s]{cm}$.\\par" % (enonce, decimaux(plan[choix] / 10.0)),
u"Or on sait que en réalité $%s = \\unit[%s]{m} = \\unit[%s]{cm}$" % (enonce, decimaux(reels[choix] / 1000.0), decimaux(reels[choix] / 10.0)),
u" et $%s \\div %s = %s$.\\par" % (decimaux(reels[choix]), decimaux(plan[choix]), decimaux(echelle)),
u"L'échelle de ce plan est donc $1/%s^e$." % echelle,
u"\\item Déterminer les longueurs réelles $%s$, $%s$ et $%s$.\n" % (reponses[0], reponses[1], reponses[2]),
u"Grâce à la question précédente, je peux compléter le tableau :\n",
_(u"\\item Déterminer l'échelle de ce plan.\\par"),
_(u"Sur le plan, je mesure que $%s=\\unit[%s]{cm}$.\\par") % (enonce, decimaux(plan[choix] / 10.0)),
_(u"Or on sait que en réalité $%s = \\unit[%s]{m} = \\unit[%s]{cm}$") % (enonce, decimaux(reels[choix] / 1000.0), decimaux(reels[choix] / 10.0)),
_(u" et $%s \\div %s = %s$.\\par") % (decimaux(reels[choix]), decimaux(plan[choix]), decimaux(echelle)),
_(u"L'échelle de ce plan est donc $1/%s^e$.") % echelle,
_(u"\\item Déterminer les longueurs réelles $%s$, $%s$ et $%s$.\n") % (reponses[0], reponses[1], reponses[2]),
_(u"Grâce à la question précédente, je peux compléter le tableau :\n"),
"\\begin{tabular}{|l|c|c|c|c|c}",
("\\multicolumn{1}{c}{}" + "&\\multicolumn{1}{c}{$%s$}"*4 + "\\\\") % ("a", "b", "c", "d"),
"\\cline{1-5}",
"Sur le plan (en cm) & %s & %s & %s & %s &\\rnode{plan1}{}\\\\" % tuple(map(lambda n:decimaux(n / 10.0), plan)),
_("Sur le plan (en cm) & %s & %s & %s & %s &\\rnode{plan1}{}\\\\") % tuple(map(lambda n:decimaux(n / 10.0), plan)),
"\\cline{1-5}",
u"En réalité (en cm) & %s & %s & %s & %s &\\rnode{plan2}{}\\\\" % tuple(tab_reels),
_(u"En réalité (en cm) & %s & %s & %s & %s &\\rnode{plan2}{}\\\\") % tuple(tab_reels),
"\\cline{1-5}",
"\\end{tabular}\n",
"\\ncbar{->}{plan1}{plan2}\\Aput{$\\times %s$}" % echelle,
u"Pour conclure, on convertit ses longueurs en m :\\par",
_(u"Pour conclure, on convertit ses longueurs en m :\\par"),
"$$a = \\unit[%s]{m} \\quad ; \\quad b = \\unit[%s]{m} \\quad ; \\quad c = \\unit[%s]{m} \\quad ; \\quad d =\\unit[%s]{m}$$"\
% tuple(map(lambda n:decimaux(n / 1000.0), reels)),
"\\end{enumerate}"]
return exo, cor
exo_echelles.description = u'Échelles'
exo_echelles.description = _(u'Échelles')
def exo_fruits():
fruit = ["Cerises", "Tomates", "Pommes", "Poires", "Raisin", "Oranges"][randrange(6)]
fruit = [_("Cerises"), _("Tomates"), _("Pommes"), _("Poires"), _("Raisin"), _("Oranges")][randrange(6)]
while 1:
a, b, c = randint(10, 50) / 10.0, randint(10, 50) / 10.0, randint(10, 50) / 10.0
if a != b and a != c and b != c:
......@@ -144,32 +144,31 @@ def exo_fruits():
tarif = randint(20, 50) / 10.0
fruits_c = (fruit, a, b, c)
fruits_e = (fruit, decimaux(a), decimaux(b), "")
prix_c = ("prix", decimaux(fruits_c[1] * tarif), decimaux(fruits_c[2] * tarif), decimaux(fruits_c[3] * tarif))
prix_e = ("prix", decimaux(fruits_c[1] * tarif), "", decimaux(fruits_c[3] * tarif))
prix_c = (_("prix"), decimaux(fruits_c[1] * tarif), decimaux(fruits_c[2] * tarif), decimaux(fruits_c[3] * tarif))
prix_e = (_("prix"), decimaux(fruits_c[1] * tarif), "", decimaux(fruits_c[3] * tarif))
fruits_c = (fruit, decimaux(a), decimaux(b), decimaux(c))
tableau_exo = ["\\begin{tabular}{|l|c|c|c|}",
"\hline",
u"%s (en kg) & %s & %s & %s \\\\" % fruits_e,
_(u"%s (en kg) & %s & %s & %s \\\\") % fruits_e,
"\hline",
u"%s (en \\euro) & %s & %s & %s \\\\" % prix_e,
_(u"%s (en \\euro) & %s & %s & %s \\\\") % prix_e,
"\hline",
"\\end{tabular}"]
tableau_cor = ["\\begin{tabular}{|l|c|c|c|}",
"\hline",
u"%s (en kg) & %s & %s & \\bf %s \\\\" % fruits_c,
_(u"%s (en kg) & %s & %s & \\bf %s \\\\") % fruits_c,
"\hline",
u"%s (en \\euro) & %s & \\bf %s & %s \\\\" % prix_c,
_(u"%s (en \\euro) & %s & \\bf %s & %s \\\\") % prix_c,
"\hline",
"\\end{tabular}"]
exo = [u"\\exercice Le prix à payer est proportionnel à la masse de fruits achetés.\\par",
u"Détermine la valeur des cases vides"]
cor = [u"\\exercice Le prix à payer est proportionnel à la masse de fruits achetés.\\par",
u"Détermine la valeur des cases vides"]
exo = [_(u"\\exercice Le prix à payer est proportionnel à la masse de fruits achetés.\\par"),
_(u"Détermine la valeur des cases vides")]
cor = [_(u"\\exercice Le prix à payer est proportionnel à la masse de fruits achetés.\\par"),
_(u"Détermine la valeur des cases vides")]
exo += ["\n"] + tableau_exo
cor += ["\n"] + tableau_cor
cor.append("$$\\frac{%s \\times %s}{%s} = %s \\quad;\\qquad" % (prix_e[1], fruits_e[2], fruits_e[1], prix_c[2]))
cor.append("\\frac{%s \\times %s}{%s} = %s $$" % (fruits_c[1], prix_c[3], prix_e[1], fruits_c[3]))
return (exo, cor)
return (exo, cor)
......@@ -72,9 +72,9 @@ def moins_dec(pyromax):
def relatifs():
exo = ["\\exercice", "Effectuer sans calculatrice :",
exo = [_("\\exercice", "Effectuer sans calculatrice :"),
"\\begin{multicols}{3}\\noindent", " \\begin{enumerate}"]
cor = ["\\exercice*", "Effectuer sans calculatrice :",
cor = [_("\\exercice*", "Effectuer sans calculatrice :"),
"\\begin{multicols}{3}\\noindent", " \\begin{enumerate}"]
modules = (plus, moins,)
modules_dec = (plus_dec, moins_dec,)
......@@ -105,4 +105,8 @@ def relatifs():
cor.extend([" \\end{enumerate}", "\\end{multicols}"])
return (exo, cor)
<<<<<<< HEAD
relatifs.description = u'Addition de relatifs'
=======
main.description = _(u'Addition de relatifs')
>>>>>>> pr/9
......@@ -173,7 +173,7 @@ def reperage():
nbpts = 13
noms_pts = (noms_sommets(nbpts))
coord_pts = coordo_pts(nbpts)
voc = ['abscisse', u'ordonnée']
voc = [_('abscisse'), _(u'ordonnée')]
rg1 = random.randrange(0, 2)
rg2 = abs(rg1 - 1)
while len(coord_pts) < nbpts:
......@@ -181,9 +181,9 @@ def reperage():
exo = ["\\exercice",
"\\parbox{0.4\\linewidth}{",
"\\begin{enumerate}",
u"\\item Donner les coordonnées des points %s, %s, %s, %s, %s et %s." % tuple(noms_pts[0:6]),
u"\\item Placer dans le repère les points %s, %s, %s, %s, %s et %s" % noms_pts[6:12] + u" de coordonnées respectives %s, %s, %s, %s, %s et %s. " % tuple(tex_liste_co(coord_pts[6:12])),
u"\\item Placer dans le repère le point %s d'%s %s et d'%s %s" % (noms_pts[12], voc[rg1], decimaux(str(coord_pts[12][rg1])), voc[rg2], decimaux(str(coord_pts[12][rg2]))),
_(u"\\item Donner les coordonnées des points %s, %s, %s, %s, %s et %s.") % tuple(noms_pts[0:6]),
_(u"\\item Placer dans le repère les points %s, %s, %s, %s, %s et %s") % noms_pts[6:12] + _(u" de coordonnées respectives %s, %s, %s, %s, %s et %s. ") % tuple(tex_liste_co(coord_pts[6:12])),
_(u"\\item Placer dans le repère le point %s d'%s %s et d'%s %s") % (noms_pts[12], voc[rg1], decimaux(str(coord_pts[12][rg1])), voc[rg2], decimaux(str(coord_pts[12][rg2]))),
"\\end{enumerate}}\\hfill ",
"\\parbox{0.55\\linewidth}{",
"\\psset{unit=0.8cm}",
......@@ -204,15 +204,15 @@ def reperage():
"\\end{pspicture}}\\hfill",
"\\parbox{0.5\\linewidth}{",
"\\begin{enumerate}",
u"\\item Donner les coordonnées des points %s, %s, %s, %s, %s et %s." % tuple(noms_pts[0:6])]
_(u"\\item Donner les coordonnées des points %s, %s, %s, %s, %s et %s.") % tuple(noms_pts[0:6])]
i = 0
while i < 6:
cor.append(u"Les coordonnées du point %s sont %s \n" % (noms_pts[i], affiche_coord(coord_pts[i])))
cor.append(_(u"Les coordonnées du point %s sont %s \n") % (noms_pts[i], affiche_coord(coord_pts[i])))
i = i + 1
cor[len(cor):len(cor)] = [u"\\item Placer dans le repère les points %s, %s, %s, %s, %s et %s" % noms_pts[6:12] + u" de coordonnées respectives %s, %s, %s, %s, %s et %s. " % tuple(tex_liste_co(coord_pts[6:12])),
u"\\item Placer dans le repère le point %s d'%s %s et d'%s %s" % (noms_pts[12], voc[rg1], decimaux(str(coord_pts[12][rg1])), voc[rg2], decimaux(str(coord_pts[12][rg2]))),