diff --git a/PokemonGoIV/0Main.vb b/PokemonGoIV/0Main.vb
index 5c1e717..46673d9 100644
--- a/PokemonGoIV/0Main.vb
+++ b/PokemonGoIV/0Main.vb
@@ -1,4 +1,4 @@
-' Copyright (c) 2016 imacat.
+' Copyright (c) 2016-2017 imacat.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ Type aFindIVParam
sPokemon As String
nCP As Integer
nHP As Integer
- nStarDust As Integer
+ nStardust As Integer
nPlayerLevel As Integer
bIsNew As Boolean
nTotal As Integer
@@ -59,7 +59,7 @@ Type aFindIVParam
End Type
Private maBaseStats () As New aStats
-Private mCPM () As Double, mStarDust () As Integer
+Private mCPM () As Double, mStardust () As Integer
' subMain: The main program
Sub subMain
@@ -113,7 +113,7 @@ Function fnAskParam As aFindIVParam
.sPokemon = oDialog.getControl ("lstPokemon").getSelectedItem
.nCP = oDialog.getControl ("numCP").getValue
.nHP = oDialog.getControl ("numHP").getValue
- .nStarDust = CInt (oDialog.getControl ("lstStarDust").getSelectedItem)
+ .nStardust = CInt (oDialog.getControl ("lstStardust").getSelectedItem)
.nPlayerLevel = CInt (oDialog.getControl ("lstPlayerLevel").getSelectedItem)
.nTotal = oDialog.getControl ("lstTotal").getSelectedItemPos + 1
.nMax = oDialog.getControl ("lstMax").getSelectedItemPos + 1
@@ -174,19 +174,19 @@ End Function
Sub subBtnOKCheck (oEvent As object)
Dim oDialog As Object
Dim oPokemon As Object, oCP As Object
- Dim oHP As Object, oStarDust As Object, oOK As Object
+ Dim oHP As Object, oStardust As Object, oOK As Object
oDialog = oEvent.Source.getContext
oPokemon = oDialog.getControl ("lstPokemon")
oCP = oDialog.getControl ("numCP")
oHP = oDialog.getControl ("numHP")
- oStarDust = oDialog.getControl ("lstStarDust")
+ oStardust = oDialog.getControl ("lstStardust")
oOK = oDialog.getControl ("btnOK")
If oPokemon.getSelectedItemPos <> -1 _
And oCP.getText <> "" _
And oHP.getText <> "" _
- And oStarDust.getSelectedItemPos <> -1 Then
+ And oStardust.getSelectedItemPos <> -1 Then
oOK.setEnable (True)
Else
oOK.setEnable (False)
@@ -330,21 +330,16 @@ Sub subUpdateBestStatAppraisal (oDialog As Object, sAppraisal)
Dim oText As Object, oList As Object, nX As Integer
Dim sBefore As String, nBeforeWidth As Integer
Dim sAfter As String, nAfterWidth As Integer
+ Dim nDialogWidth As Integer
Dim nPos As Integer
Dim mItems () As String
nPos = InStr (sAppraisal, "[Stat]")
sBefore = Left (sAppraisal, nPos - 1)
- If Right (sBefore, 1) <> " " Then
- sBefore = sBefore & " "
- End If
- nBeforeWidth = CInt (Len (sBefore) * 2.3)
+ nBeforeWidth = CInt (Len (sBefore) * 2.8)
sAfter = Right (sAppraisal, _
Len (sAppraisal) - nPos - Len ("[Stat]") + 1)
- If Left (sAfter, 1) <> " " Then
- sAfter = " " & sAfter
- End If
- nAfterWidth = CInt (Len (sAfter) * 2.3)
+ nDialogWidth = oDialog.getModel.getPropertyValue ("Width")
oText = oDialog.getControl ("txtBestBefore")
oText.getModel.setPropertyValue ("Width", nBeforeWidth)
@@ -361,8 +356,9 @@ Sub subUpdateBestStatAppraisal (oDialog As Object, sAppraisal)
oList.addItems (mItems, 0)
oList.getModel.setPropertyValue ("PositionX", nX)
oList.setVisible (True)
- nX = nX + oList.getModel.getPropertyValue ("Width") + 2
+ nX = nX + oList.getModel.getPropertyValue ("Width")
+ nAfterWidth = nDialogWidth - nX - 10
oText = oDialog.getControl ("txtBestAfter")
oText.getModel.setPropertyValue ("PositionX", nX)
oText.getModel.setPropertyValue ("Width", nAfterWidth)
@@ -571,7 +567,7 @@ Function fnFindIV ( _
Else
fStep = 0.5
End If
- subReadStarDust
+ subReadStardust
nEvolved = UBound (aBaseStats.mEvolved)
If nEvolved > -1 Then
ReDim Preserve maEvBaseStats (nEvolved) As New aStats
@@ -585,8 +581,8 @@ Function fnFindIV ( _
Next nI
End If
nN = -1
- For fLevel = 1 To UBound (mStarDust) Step fStep
- If mStarDust (CInt (fLevel - 0.5)) = aQuery.nStarDust Then
+ For fLevel = 1 To UBound (mStardust) Step fStep
+ If mStardust (CInt (fLevel - 0.5)) = aQuery.nStardust Then
For nStamina = 0 To 15
If fnCalcHP (aBaseStats, fLevel, nStamina) = aQuery.nHP Then
For nAttack = 0 To 15
@@ -740,7 +736,7 @@ Sub subSaveIV ( _
nEvolved = UBound (maIVs (0).maEvolved) + 1
mRow = Array ( _
- "No", "Pokemon", "CP", "HP", "Star dust", _
+ "No", "Pokemon", "CP", "HP", "Stardust", _
"Lv", "Atk", "Def", "Sta", "IV")
nFront = UBound (mRow)
If aQuery.sPokemon = "Eevee" Then
@@ -843,7 +839,7 @@ Sub subSaveIV ( _
mData (1) (1) = aQuery.sPokemon
mData (1) (2) = aQuery.nCP
mData (1) (3) = aQuery.nHP
- mData (1) (4) = aQuery.nStarDust
+ mData (1) (4) = aQuery.nStardust
oRange = oSheet.getCellRangeByPosition ( _
0, 0, UBound (mData (0)), UBound (mData))
@@ -1154,9 +1150,9 @@ Sub subReadCPM
End If
End Sub
-' subReadStarDust: Reads the star dust table.
-Sub subReadStarDust
- If UBound (mStarDust) = -1 Then
- mStarDust = fnGetStarDustData
+' subReadStardust: Reads the stardust table.
+Sub subReadStardust
+ If UBound (mStardust) = -1 Then
+ mStardust = fnGetStardustData
End If
End Sub
diff --git a/PokemonGoIV/1Data.vb b/PokemonGoIV/1Data.vb
index 2bd349f..749ae95 100644
--- a/PokemonGoIV/1Data.vb
+++ b/PokemonGoIV/1Data.vb
@@ -1,4 +1,4 @@
-' Copyright (c) 2016 imacat.
+' Copyright (c) 2016-2017 imacat.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
@@ -228,9 +228,9 @@ Function fnGetCPMData As Variant
0.78463697)
End Function
-' fnGetStarDustData: Returns the star dust data.
-Function fnGetStarDustData As Variant
- fnGetStarDustData = Array( _
+' fnGetStardustData: Returns the stardust data.
+Function fnGetStardustData As Variant
+ fnGetStardustData = Array( _
-1, _
200, _
200, _
diff --git a/PokemonGoIV/9Load.vb b/PokemonGoIV/9Load.vb
index 72ad364..f56a3f2 100644
--- a/PokemonGoIV/9Load.vb
+++ b/PokemonGoIV/9Load.vb
@@ -1,4 +1,4 @@
-' Copyright (c) 2016 imacat.
+' Copyright (c) 2016-2017 imacat.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
@@ -23,7 +23,7 @@ Sub subReadDataSheets
Dim sOutput as String, mData As Variant
sOutput = "" _
- & "' Copyright (c) 2016 imacat." & Chr (10) _
+ & "' Copyright (c) 2016-" & Year (Now) & " imacat." & Chr (10) _
& "' " & Chr (10) _
& "' Licensed under the Apache License, Version 2.0 (the ""License"");" & Chr (10) _
& "' you may not use this file except in compliance with the License." & Chr (10) _
@@ -44,7 +44,7 @@ Sub subReadDataSheets
& "Option Explicit"
sOutput = sOutput & Chr (10) & Chr (10) & fnReadBaseStatsSheet
sOutput = sOutput & Chr (10) & Chr (10) & fnReadCPMSheet
- sOutput = sOutput & Chr (10) & Chr (10) & fnReadStarDustSheet
+ sOutput = sOutput & Chr (10) & Chr (10) & fnReadStardustSheet
subShowBasicData (sOutput)
End Sub
@@ -203,8 +203,8 @@ Function fnReadCPMSheet As String
fnReadCPMSheet = sOutput
End Function
-' fnReadStarDustSheet: Reads the star dust sheet.
-Function fnReadStarDustSheet As String
+' fnReadStardustSheet: Reads the stardust sheet.
+Function fnReadStardustSheet As String
Dim oSheet As Object, oRange As Object, mData As Variant
Dim nI As Integer, sOutput As String
@@ -213,9 +213,9 @@ Function fnReadStarDustSheet As String
mData = oRange.getDataArray
sOutput = "" _
- & "' fnGetStarDustData: Returns the star dust data." & Chr (10) _
- & "Function fnGetStarDustData As Variant" & Chr (10) _
- & Chr (9) & "fnGetStarDustData = Array( _" & Chr (10) _
+ & "' fnGetStardustData: Returns the stardust data." & Chr (10) _
+ & "Function fnGetStardustData As Variant" & Chr (10) _
+ & Chr (9) & "fnGetStardustData = Array( _" & Chr (10) _
& Chr (9) & Chr (9) & "-1, _" & Chr (10)
For nI = 1 To UBound (mData) - 1 Step 2
sOutput = sOutput _
@@ -225,5 +225,5 @@ Function fnReadStarDustSheet As String
sOutput = sOutput _
& Chr (9) & Chr (9) & mData (nI) (2) & ")" & Chr (10) _
& "End Function"
- fnReadStarDustSheet = sOutput
+ fnReadStardustSheet = sOutput
End Function
diff --git a/README b/README
index 850cb24..a2c2455 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
pokemongoiv - The Pokémon GO IV calculator
- Copyright (c) 2016 imacat.
+ Copyright (c) 2016-2017 imacat.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/oxt/AddonConfiguration.xcu b/oxt/AddonConfiguration.xcu
index 0beb695..2123a63 100644
--- a/oxt/AddonConfiguration.xcu
+++ b/oxt/AddonConfiguration.xcu
@@ -10,6 +10,7 @@
Calculates the individual values (IVs) of the Pokémon.
計算寶可夢的 IV 值。
+ Berechnet Individuelle Werte (IVs) von Pokémon.
@VERSION@
@@ -25,11 +26,24 @@
imacat@mail.imacat.idv.tw
- Copyright © 2016 imacat
- 版權所有 © 2016 依瑪貓
+ Copyright © 2016-2017 imacat
+ 版權所有 © 2016-2017 依瑪貓
+ Copyright © 2016-2017 imacat
-
+
+
+
+ Andreas Frisch
+
+
+ github@dreambox.guru
+
+
+ German
+
+
+
@@ -38,21 +52,25 @@
Found no matching IV.
找不出符合的 IV 值。
+ Keine passenden individuellen Werte gefunden.
Attack
+ Angriff
Defense
+ Verteidigung
HP
+ KP
@@ -60,56 +78,67 @@
Candela, leader of Team Valor, says:
Valor 隊隊長 Candela 說:
+ Candela, Leiter von Team Wagemut, sagt:
Overall, your [Pokémon] simply amazes me. It can accomplish anything!
+ Von deinem [Pokémon] bin ich insgesamt total beeindruckt. Es kann einfach alles!
Overall, your [Pokémon] is a strong Pokémon. You should be proud!
+ Dein [Pokémon] ist insgesamt sehr stark. Du kannst stolz sein!
Overall, your [Pokémon] is a decent Pokémon.
+ Dein [Pokémon] ist insgesamt ganz gut!
Overall, your [Pokémon] may not be great in battle, but I still like it!
+ Dein [Pokémon] ist zwar insgesamt im Kampf nicht allzu beeindruckend, aber ich mag es trotzdem!
Its [Stat] is its strongest feature.
+ Sein [Stat]-Wert ist seine stärkste Eigenschaft.
I'm just as impressed with its [Stat].
+ Ich bin genauso beeindruckt durch seinen [Stat]-Wert.
I'm blown away by its stats. WOW!
+ Seine Werte hauen mich um. WOW!
It's got excellent stats! How exciting!
+ Es hat hervorragende Werte! Wie aufregend!
Its stats indicate that in battle, it'll get the job done.
+ Seine Werte sind nicht von schlechten Eltern.
Its stats don't point to greatness in battle.
+ Seine Werte werden dir im Kampf nicht viel bringen.
@@ -117,56 +146,67 @@
Blanche, leader of Team Mystic, says:
Mystic 隊隊長 Blanche 說:
+ Blanche, Leiter von Team Weisheit, sagt:
Overall, your [Pokémon] is a wonder! What a breathtaking Pokémon!
+ Dein [Pokémon] ist insgesamt einfach erstaunlich. Wirklich ein atemberaubendes Exemplar!
Overall, your [Pokémon] has certainly caught my attention.
+ Dein [Pokémon] ist mir insgesamt wirklich aufgefallen.
Overall, your [Pokémon] is above average.
+ Dein [Pokémon] ist insgesamt ein gutes Pokémon.
Overall, your [Pokémon] is not likely to make much headway in battle.
+ Dein [Pokémon] wird im Kampf insgesamt wahrscheinlich keine großen Fortschritte machen.
I see that its best attribute is its [Stat].
+ Seine beste Eigenschaft ist offensichtlich sein [Stat]-Wert.
It is matched equally by its [Stat].
+ Sein [Stat]-Wert ist genauso gut!
Its stats exceed my calculations. It's incredible!
+ Seine Werte sind so hoch, dass ich sie gar nicht berechnen kann! Unglaublich!
I am certainly impressed by its stats, I must say.
+ Ich muss sagen, dass ich von seinen Werten sehr beeindruckt bin.
Its stats are noticeably trending to the positive.
+ Seine Werte sind recht beeindruckend.
Its stats are not out of the norm, in my opinion.
+ Seine Werte sind insgesamt ganz ok.
@@ -174,56 +214,67 @@
Spark, leader of Team Instinct, says:
Instinct 隊隊長 Spark 說:
+ Spark, Leiter von Team Intuition, sagt:
Overall, your [Pokémon] is not likely to make much headway in battle.
+ Dein [Pokémon] kann es im Kampf mit allen aufnehmen!
Overall, your [Pokémon] is really strong!
+ Dein [Pokémon] ist insgesamt wirklich stark!
Overall, your [Pokémon] is pretty decent!
+ Dein [Pokémon] ist insgesamt ganz gut.
Overall, your [Pokémon] has room for improvement as far as battling goes.
+ Dein [Pokémon] kann sich im Kampf noch verbessern!
Its best quality is [Stat].
+ Sein [Stat]-Wert ist seine beste Eigenschaft!
Its [Stat] is great, too!
+ Auch sein [Stat]-Wert ist klasse!
Its stats are the best I've ever seen! No doubt about it!
+ Seine Werte sind die besten, die ich je gesehen habe!
Its stats are really strong! Impressive.
+ Seine Werte sind wirklich hoch! Hut ab!
It's definitely got some good stats. Definitely!
+ Seine Werte können sich sehen lassen!
Its stats are all right, but kinda basic, as far as I can see.
+ Seine Werte sind okay.
diff --git a/oxt/Addons.xcu b/oxt/Addons.xcu
index 0a6285f..936b28f 100644
--- a/oxt/Addons.xcu
+++ b/oxt/Addons.xcu
@@ -9,8 +9,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
@@ -24,8 +25,9 @@
%origin%/icons/image1
- Calculates Pokémon IV
+ Calculates Pokémon IV
計算寶可夢 IV
+ Berechnet IV von Pokémon
_self
@@ -45,8 +47,9 @@
%origin%/icons/image1
- Calculates Pokémon IV
+ Calculates Pokémon IV
計算寶可夢 IV
+ Berechnet IV von Pokémon
_self
diff --git a/oxt/META-INF/manifest.xml b/oxt/META-INF/manifest.xml
index 60352d4..91759cd 100644
--- a/oxt/META-INF/manifest.xml
+++ b/oxt/META-INF/manifest.xml
@@ -3,6 +3,7 @@
+
diff --git a/oxt/Office/UI/BaseWindowState.xcu b/oxt/Office/UI/BaseWindowState.xcu
index 1d37e1e..935a618 100644
--- a/oxt/Office/UI/BaseWindowState.xcu
+++ b/oxt/Office/UI/BaseWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/BasicIDEWindowState.xcu b/oxt/Office/UI/BasicIDEWindowState.xcu
index e6d658e..b12d8fb 100644
--- a/oxt/Office/UI/BasicIDEWindowState.xcu
+++ b/oxt/Office/UI/BasicIDEWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/CalcWindowState.xcu b/oxt/Office/UI/CalcWindowState.xcu
index 4f832da..a93ce4d 100644
--- a/oxt/Office/UI/CalcWindowState.xcu
+++ b/oxt/Office/UI/CalcWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/DrawWindowState.xcu b/oxt/Office/UI/DrawWindowState.xcu
index ec05ee1..f8bb2f8 100644
--- a/oxt/Office/UI/DrawWindowState.xcu
+++ b/oxt/Office/UI/DrawWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/ImpressWindowState.xcu b/oxt/Office/UI/ImpressWindowState.xcu
index bd43ced..f43c101 100644
--- a/oxt/Office/UI/ImpressWindowState.xcu
+++ b/oxt/Office/UI/ImpressWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/MathWindowState.xcu b/oxt/Office/UI/MathWindowState.xcu
index 87e9ede..4f9655c 100644
--- a/oxt/Office/UI/MathWindowState.xcu
+++ b/oxt/Office/UI/MathWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/StartModuleWindowState.xcu b/oxt/Office/UI/StartModuleWindowState.xcu
index e82d23d..f83ccd2 100644
--- a/oxt/Office/UI/StartModuleWindowState.xcu
+++ b/oxt/Office/UI/StartModuleWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/Office/UI/WriterWindowState.xcu b/oxt/Office/UI/WriterWindowState.xcu
index 62f270a..3a2a442 100644
--- a/oxt/Office/UI/WriterWindowState.xcu
+++ b/oxt/Office/UI/WriterWindowState.xcu
@@ -7,8 +7,9 @@
- Pokémon GO IV Calculator
+ Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/PokemonGoIV/0Main.xba b/oxt/PokemonGoIV/0Main.xba
index 6376074..7d20568 100644
--- a/oxt/PokemonGoIV/0Main.xba
+++ b/oxt/PokemonGoIV/0Main.xba
@@ -1,6 +1,6 @@
-' Copyright (c) 2016 imacat.
+' Copyright (c) 2016-2017 imacat.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ Type aFindIVParam
sPokemon As String
nCP As Integer
nHP As Integer
- nStarDust As Integer
+ nStardust As Integer
nPlayerLevel As Integer
bIsNew As Boolean
nTotal As Integer
@@ -61,7 +61,7 @@ Type aFindIVParam
End Type
Private maBaseStats () As New aStats
-Private mCPM () As Double, mStarDust () As Integer
+Private mCPM () As Double, mStardust () As Integer
' subMain: The main program
Sub subMain
@@ -115,7 +115,7 @@ Function fnAskParam As aFindIVParam
.sPokemon = oDialog.getControl ("lstPokemon").getSelectedItem
.nCP = oDialog.getControl ("numCP").getValue
.nHP = oDialog.getControl ("numHP").getValue
- .nStarDust = CInt (oDialog.getControl ("lstStarDust").getSelectedItem)
+ .nStardust = CInt (oDialog.getControl ("lstStardust").getSelectedItem)
.nPlayerLevel = CInt (oDialog.getControl ("lstPlayerLevel").getSelectedItem)
.nTotal = oDialog.getControl ("lstTotal").getSelectedItemPos + 1
.nMax = oDialog.getControl ("lstMax").getSelectedItemPos + 1
@@ -176,19 +176,19 @@ End Function
Sub subBtnOKCheck (oEvent As object)
Dim oDialog As Object
Dim oPokemon As Object, oCP As Object
- Dim oHP As Object, oStarDust As Object, oOK As Object
+ Dim oHP As Object, oStardust As Object, oOK As Object
oDialog = oEvent.Source.getContext
oPokemon = oDialog.getControl ("lstPokemon")
oCP = oDialog.getControl ("numCP")
oHP = oDialog.getControl ("numHP")
- oStarDust = oDialog.getControl ("lstStarDust")
+ oStardust = oDialog.getControl ("lstStardust")
oOK = oDialog.getControl ("btnOK")
If oPokemon.getSelectedItemPos <> -1 _
And oCP.getText <> "" _
And oHP.getText <> "" _
- And oStarDust.getSelectedItemPos <> -1 Then
+ And oStardust.getSelectedItemPos <> -1 Then
oOK.setEnable (True)
Else
oOK.setEnable (False)
@@ -332,21 +332,16 @@ Sub subUpdateBestStatAppraisal (oDialog As Object, sAppraisal)
Dim oText As Object, oList As Object, nX As Integer
Dim sBefore As String, nBeforeWidth As Integer
Dim sAfter As String, nAfterWidth As Integer
+ Dim nDialogWidth As Integer
Dim nPos As Integer
Dim mItems () As String
nPos = InStr (sAppraisal, "[Stat]")
sBefore = Left (sAppraisal, nPos - 1)
- If Right (sBefore, 1) <> " " Then
- sBefore = sBefore & " "
- End If
- nBeforeWidth = CInt (Len (sBefore) * 2.3)
+ nBeforeWidth = CInt (Len (sBefore) * 2.8)
sAfter = Right (sAppraisal, _
Len (sAppraisal) - nPos - Len ("[Stat]") + 1)
- If Left (sAfter, 1) <> " " Then
- sAfter = " " & sAfter
- End If
- nAfterWidth = CInt (Len (sAfter) * 2.3)
+ nDialogWidth = oDialog.getModel.getPropertyValue ("Width")
oText = oDialog.getControl ("txtBestBefore")
oText.getModel.setPropertyValue ("Width", nBeforeWidth)
@@ -363,8 +358,9 @@ Sub subUpdateBestStatAppraisal (oDialog As Object, sAppraisal)
oList.addItems (mItems, 0)
oList.getModel.setPropertyValue ("PositionX", nX)
oList.setVisible (True)
- nX = nX + oList.getModel.getPropertyValue ("Width") + 2
+ nX = nX + oList.getModel.getPropertyValue ("Width")
+ nAfterWidth = nDialogWidth - nX - 10
oText = oDialog.getControl ("txtBestAfter")
oText.getModel.setPropertyValue ("PositionX", nX)
oText.getModel.setPropertyValue ("Width", nAfterWidth)
@@ -573,7 +569,7 @@ Function fnFindIV ( _
Else
fStep = 0.5
End If
- subReadStarDust
+ subReadStardust
nEvolved = UBound (aBaseStats.mEvolved)
If nEvolved > -1 Then
ReDim Preserve maEvBaseStats (nEvolved) As New aStats
@@ -587,8 +583,8 @@ Function fnFindIV ( _
Next nI
End If
nN = -1
- For fLevel = 1 To UBound (mStarDust) Step fStep
- If mStarDust (CInt (fLevel - 0.5)) = aQuery.nStarDust Then
+ For fLevel = 1 To UBound (mStardust) Step fStep
+ If mStardust (CInt (fLevel - 0.5)) = aQuery.nStardust Then
For nStamina = 0 To 15
If fnCalcHP (aBaseStats, fLevel, nStamina) = aQuery.nHP Then
For nAttack = 0 To 15
@@ -742,7 +738,7 @@ Sub subSaveIV ( _
nEvolved = UBound (maIVs (0).maEvolved) + 1
mRow = Array ( _
- "No", "Pokemon", "CP", "HP", "Star dust", _
+ "No", "Pokemon", "CP", "HP", "Stardust", _
"Lv", "Atk", "Def", "Sta", "IV")
nFront = UBound (mRow)
If aQuery.sPokemon = "Eevee" Then
@@ -845,7 +841,7 @@ Sub subSaveIV ( _
mData (1) (1) = aQuery.sPokemon
mData (1) (2) = aQuery.nCP
mData (1) (3) = aQuery.nHP
- mData (1) (4) = aQuery.nStarDust
+ mData (1) (4) = aQuery.nStardust
oRange = oSheet.getCellRangeByPosition ( _
0, 0, UBound (mData (0)), UBound (mData))
@@ -1156,10 +1152,10 @@ Sub subReadCPM
End If
End Sub
-' subReadStarDust: Reads the star dust table.
-Sub subReadStarDust
- If UBound (mStarDust) = -1 Then
- mStarDust = fnGetStarDustData
+' subReadStardust: Reads the stardust table.
+Sub subReadStardust
+ If UBound (mStardust) = -1 Then
+ mStardust = fnGetStardustData
End If
End Sub
\ No newline at end of file
diff --git a/oxt/PokemonGoIV/1Data.xba b/oxt/PokemonGoIV/1Data.xba
index 464af50..f6a6c1f 100644
--- a/oxt/PokemonGoIV/1Data.xba
+++ b/oxt/PokemonGoIV/1Data.xba
@@ -1,6 +1,6 @@
-' Copyright (c) 2016 imacat.
+' Copyright (c) 2016-2017 imacat.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
@@ -230,9 +230,9 @@ Function fnGetCPMData As Variant
0.78463697)
End Function
-' fnGetStarDustData: Returns the star dust data.
-Function fnGetStarDustData As Variant
- fnGetStarDustData = Array( _
+' fnGetStardustData: Returns the stardust data.
+Function fnGetStardustData As Variant
+ fnGetStardustData = Array( _
-1, _
200, _
200, _
diff --git a/oxt/PokemonGoIV/9Load.xba b/oxt/PokemonGoIV/9Load.xba
index f2e8ce9..ea292a7 100644
--- a/oxt/PokemonGoIV/9Load.xba
+++ b/oxt/PokemonGoIV/9Load.xba
@@ -1,6 +1,6 @@
-' Copyright (c) 2016 imacat.
+' Copyright (c) 2016-2017 imacat.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ Sub subReadDataSheets
Dim sOutput as String, mData As Variant
sOutput = "" _
- & "' Copyright (c) 2016 imacat." & Chr (10) _
+ & "' Copyright (c) 2016-" & Year (Now) & " imacat." & Chr (10) _
& "' " & Chr (10) _
& "' Licensed under the Apache License, Version 2.0 (the ""License"");" & Chr (10) _
& "' you may not use this file except in compliance with the License." & Chr (10) _
@@ -46,7 +46,7 @@ Sub subReadDataSheets
& "Option Explicit"
sOutput = sOutput & Chr (10) & Chr (10) & fnReadBaseStatsSheet
sOutput = sOutput & Chr (10) & Chr (10) & fnReadCPMSheet
- sOutput = sOutput & Chr (10) & Chr (10) & fnReadStarDustSheet
+ sOutput = sOutput & Chr (10) & Chr (10) & fnReadStardustSheet
subShowBasicData (sOutput)
End Sub
@@ -205,8 +205,8 @@ Function fnReadCPMSheet As String
fnReadCPMSheet = sOutput
End Function
-' fnReadStarDustSheet: Reads the star dust sheet.
-Function fnReadStarDustSheet As String
+' fnReadStardustSheet: Reads the stardust sheet.
+Function fnReadStardustSheet As String
Dim oSheet As Object, oRange As Object, mData As Variant
Dim nI As Integer, sOutput As String
@@ -215,9 +215,9 @@ Function fnReadStarDustSheet As String
mData = oRange.getDataArray
sOutput = "" _
- & "' fnGetStarDustData: Returns the star dust data." & Chr (10) _
- & "Function fnGetStarDustData As Variant" & Chr (10) _
- & Chr (9) & "fnGetStarDustData = Array( _" & Chr (10) _
+ & "' fnGetStardustData: Returns the stardust data." & Chr (10) _
+ & "Function fnGetStardustData As Variant" & Chr (10) _
+ & Chr (9) & "fnGetStardustData = Array( _" & Chr (10) _
& Chr (9) & Chr (9) & "-1, _" & Chr (10)
For nI = 1 To UBound (mData) - 1 Step 2
sOutput = sOutput _
@@ -227,6 +227,6 @@ Function fnReadStarDustSheet As String
sOutput = sOutput _
& Chr (9) & Chr (9) & mData (nI) (2) & ")" & Chr (10) _
& "End Function"
- fnReadStarDustSheet = sOutput
+ fnReadStardustSheet = sOutput
End Function
\ No newline at end of file
diff --git a/oxt/PokemonGoIV/DialogStrings_de_DE.properties b/oxt/PokemonGoIV/DialogStrings_de_DE.properties
new file mode 100644
index 0000000..98c39d1
--- /dev/null
+++ b/oxt/PokemonGoIV/DialogStrings_de_DE.properties
@@ -0,0 +1,252 @@
+# Strings for Dialog Library PokemonGoIV
+1.DlgMain.Title=Pok\u00e9mon GO IV Rechner
+2.DlgMain.txtPokemon.Label=~Pok\u00e9mon:
+3.DlgMain.txtCP.Label=~WP:
+4.DlgMain.txtHP.Label=~KP:
+5.DlgMain.txtStardust.Label=~Sternenstaub:
+6.DlgMain.txtPlayerLevel.Label=Spieler ~Level:
+7.DlgMain.cbxIsNew.Label=Dieses Pok\u00e9mon hat noch ~kein Power-Up bekommen.
+8.DlgMain.grpAppraisals.Label=Bewertung des Teamleiters
+9.DlgMain.rdoTeamValor.Label=Team W~agemut
+10.DlgMain.rdoTeamMystic.Label=Team W~eisheit
+11.DlgMain.rdoTeamInstinct.Label=Team ~Intuition
+1001.lstPokemon.StringItemList=Bisasam
+1002.lstPokemon.StringItemList=Bisaknosp
+1003.lstPokemon.StringItemList=Bisaflor
+1004.lstPokemon.StringItemList=Glumanda
+1005.lstPokemon.StringItemList=Glutexo
+1006.lstPokemon.StringItemList=Glurak
+1007.lstPokemon.StringItemList=Schiggy
+1008.lstPokemon.StringItemList=Schillok
+1009.lstPokemon.StringItemList=Turtok
+1010.lstPokemon.StringItemList=Raupy
+1011.lstPokemon.StringItemList=Safcon
+1012.lstPokemon.StringItemList=Smettbo
+1013.lstPokemon.StringItemList=Hornliu
+1014.lstPokemon.StringItemList=Kokuna
+1015.lstPokemon.StringItemList=Bibor
+1016.lstPokemon.StringItemList=Taubsi
+1017.lstPokemon.StringItemList=Tauboga
+1018.lstPokemon.StringItemList=Tauboss
+1019.lstPokemon.StringItemList=Rattfratz
+1020.lstPokemon.StringItemList=Rattikarl
+1021.lstPokemon.StringItemList=Habitak
+1022.lstPokemon.StringItemList=Ibitak
+1023.lstPokemon.StringItemList=Rettan
+1024.lstPokemon.StringItemList=Arbok
+1025.lstPokemon.StringItemList=Pikachu
+1026.lstPokemon.StringItemList=Raichu
+1027.lstPokemon.StringItemList=Sandan
+1028.lstPokemon.StringItemList=Sandamer
+1029.lstPokemon.StringItemList=Nidoran\u2640
+1030.lstPokemon.StringItemList=Nidorina
+1031.lstPokemon.StringItemList=Nidoqueen
+1032.lstPokemon.StringItemList=Nidoran\u2642
+1033.lstPokemon.StringItemList=Nidorino
+1034.lstPokemon.StringItemList=Nidoking
+1035.lstPokemon.StringItemList=Piepi
+1036.lstPokemon.StringItemList=Pixi
+1037.lstPokemon.StringItemList=Vulpix
+1038.lstPokemon.StringItemList=Vulnona
+1039.lstPokemon.StringItemList=Pummeluff
+1040.lstPokemon.StringItemList=Knuddeluff
+1041.lstPokemon.StringItemList=Zubat
+1042.lstPokemon.StringItemList=Golbat
+1043.lstPokemon.StringItemList=Myrapla
+1044.lstPokemon.StringItemList=Duflor
+1045.lstPokemon.StringItemList=Giflor
+1046.lstPokemon.StringItemList=Paras
+1047.lstPokemon.StringItemList=Parasek
+1048.lstPokemon.StringItemList=Bluzuk
+1049.lstPokemon.StringItemList=Omot
+1050.lstPokemon.StringItemList=Digda
+1051.lstPokemon.StringItemList=Digdri
+1052.lstPokemon.StringItemList=Mauzi
+1053.lstPokemon.StringItemList=Snobilikat
+1054.lstPokemon.StringItemList=Enton
+1055.lstPokemon.StringItemList=Entoron
+1056.lstPokemon.StringItemList=Menki
+1057.lstPokemon.StringItemList=Rasaff
+1058.lstPokemon.StringItemList=Fukano
+1059.lstPokemon.StringItemList=Arkani
+1060.lstPokemon.StringItemList=Quapsel
+1061.lstPokemon.StringItemList=Quaputzi
+1062.lstPokemon.StringItemList=Quappo
+1063.lstPokemon.StringItemList=Abra
+1064.lstPokemon.StringItemList=Kadabra
+1065.lstPokemon.StringItemList=Simsala
+1066.lstPokemon.StringItemList=Machollo
+1067.lstPokemon.StringItemList=Maschock
+1068.lstPokemon.StringItemList=Machomei
+1069.lstPokemon.StringItemList=Knofensa
+1070.lstPokemon.StringItemList=Ultrigaria
+1071.lstPokemon.StringItemList=Sarzenia
+1072.lstPokemon.StringItemList=Tentacha
+1073.lstPokemon.StringItemList=Tentoxa
+1074.lstPokemon.StringItemList=Kleinstein
+1075.lstPokemon.StringItemList=Georok
+1076.lstPokemon.StringItemList=Geowaz
+1077.lstPokemon.StringItemList=Ponita
+1078.lstPokemon.StringItemList=Gallopa
+1079.lstPokemon.StringItemList=Flegmon
+1080.lstPokemon.StringItemList=Lahmus
+1081.lstPokemon.StringItemList=Magnetilo
+1082.lstPokemon.StringItemList=Magneton
+1083.lstPokemon.StringItemList=Porenta
+1084.lstPokemon.StringItemList=Dodu
+1085.lstPokemon.StringItemList=Dodri
+1086.lstPokemon.StringItemList=Jurob
+1087.lstPokemon.StringItemList=Jugong
+1088.lstPokemon.StringItemList=Sleima
+1089.lstPokemon.StringItemList=Sleimok
+1090.lstPokemon.StringItemList=Muschas
+1091.lstPokemon.StringItemList=Austos
+1092.lstPokemon.StringItemList=Nebulak
+1093.lstPokemon.StringItemList=Alpollo
+1094.lstPokemon.StringItemList=Gengar
+1095.lstPokemon.StringItemList=Onix
+1096.lstPokemon.StringItemList=Traumato
+1097.lstPokemon.StringItemList=Hypno
+1098.lstPokemon.StringItemList=Krabby
+1099.lstPokemon.StringItemList=Kingler
+1100.lstPokemon.StringItemList=Voltobal
+1101.lstPokemon.StringItemList=Lektrobal
+1102.lstPokemon.StringItemList=Owei
+1103.lstPokemon.StringItemList=Kokowei
+1104.lstPokemon.StringItemList=Tragosso
+1105.lstPokemon.StringItemList=Knogga
+1106.lstPokemon.StringItemList=Kicklee
+1107.lstPokemon.StringItemList=Nockchan
+1108.lstPokemon.StringItemList=Schlurp
+1109.lstPokemon.StringItemList=Smogon
+1110.lstPokemon.StringItemList=Smogmog
+1111.lstPokemon.StringItemList=Rihorn
+1112.lstPokemon.StringItemList=Rizeros
+1113.lstPokemon.StringItemList=Chaneira
+1114.lstPokemon.StringItemList=Tangela
+1115.lstPokemon.StringItemList=Kangama
+1116.lstPokemon.StringItemList=Seeper
+1117.lstPokemon.StringItemList=Seemon
+1118.lstPokemon.StringItemList=Goldini
+1119.lstPokemon.StringItemList=Golking
+1120.lstPokemon.StringItemList=Sterndu
+1121.lstPokemon.StringItemList=Starmie
+1122.lstPokemon.StringItemList=Pantimos
+1123.lstPokemon.StringItemList=Sichlor
+1124.lstPokemon.StringItemList=Rossana
+1125.lstPokemon.StringItemList=Elektek
+1126.lstPokemon.StringItemList=Magmar
+1127.lstPokemon.StringItemList=Pinsir
+1128.lstPokemon.StringItemList=Tauros
+1129.lstPokemon.StringItemList=Karpador
+1130.lstPokemon.StringItemList=Garados
+1131.lstPokemon.StringItemList=Lapras
+1132.lstPokemon.StringItemList=Ditto
+1133.lstPokemon.StringItemList=Evoli
+1134.lstPokemon.StringItemList=Aquana
+1135.lstPokemon.StringItemList=Blitza
+1136.lstPokemon.StringItemList=Flamara
+1137.lstPokemon.StringItemList=Porygon
+1138.lstPokemon.StringItemList=Amonitas
+1139.lstPokemon.StringItemList=Amoroso
+1140.lstPokemon.StringItemList=Kabuto
+1141.lstPokemon.StringItemList=Kabutops
+1142.lstPokemon.StringItemList=Aerodactyl
+1143.lstPokemon.StringItemList=Relaxo
+1144.lstPokemon.StringItemList=Arktos
+1145.lstPokemon.StringItemList=Zapdos
+1146.lstPokemon.StringItemList=Lavados
+1147.lstPokemon.StringItemList=Dratini
+1148.lstPokemon.StringItemList=Dragonir
+1149.lstPokemon.StringItemList=Dragoran
+1150.lstPokemon.StringItemList=Mewtu
+1151.lstPokemon.StringItemList=Mew
+1152.lstPokemon.StringItemList=Endivie
+1153.lstPokemon.StringItemList=Lorblatt
+1154.lstPokemon.StringItemList=Meganie
+1155.lstPokemon.StringItemList=Feurigel
+1156.lstPokemon.StringItemList=Igelavar
+1157.lstPokemon.StringItemList=Tornupto
+1158.lstPokemon.StringItemList=Karnimani
+1159.lstPokemon.StringItemList=Tyracroc
+1160.lstPokemon.StringItemList=Impergator
+1161.lstPokemon.StringItemList=Wiesor
+1162.lstPokemon.StringItemList=Wiesenior
+1163.lstPokemon.StringItemList=Hoothoot
+1164.lstPokemon.StringItemList=Noctuh
+1165.lstPokemon.StringItemList=Ledyba
+1166.lstPokemon.StringItemList=Ledian
+1167.lstPokemon.StringItemList=Webarak
+1168.lstPokemon.StringItemList=Ariados
+1169.lstPokemon.StringItemList=Iksbat
+1170.lstPokemon.StringItemList=Lampi
+1171.lstPokemon.StringItemList=Lanturn
+1172.lstPokemon.StringItemList=Pichu
+1173.lstPokemon.StringItemList=Pii
+1174.lstPokemon.StringItemList=Fluffeluff
+1175.lstPokemon.StringItemList=Togepi
+1176.lstPokemon.StringItemList=Togetic
+1177.lstPokemon.StringItemList=Natu
+1178.lstPokemon.StringItemList=Xatu
+1179.lstPokemon.StringItemList=Voltilamm
+1180.lstPokemon.StringItemList=Waaty
+1181.lstPokemon.StringItemList=Ampharos
+1182.lstPokemon.StringItemList=Blubella
+1183.lstPokemon.StringItemList=Marill
+1184.lstPokemon.StringItemList=Azumarill
+1185.lstPokemon.StringItemList=Mogelbaum
+1186.lstPokemon.StringItemList=Quaxo
+1187.lstPokemon.StringItemList=Hoppspross
+1188.lstPokemon.StringItemList=Hubelupf
+1189.lstPokemon.StringItemList=Papungha
+1190.lstPokemon.StringItemList=Griffel
+1191.lstPokemon.StringItemList=Sonnkern
+1192.lstPokemon.StringItemList=Sonnflora
+1193.lstPokemon.StringItemList=Yanma
+1194.lstPokemon.StringItemList=Felino
+1195.lstPokemon.StringItemList=Morlord
+1196.lstPokemon.StringItemList=Psiana
+1197.lstPokemon.StringItemList=Nachtara
+1198.lstPokemon.StringItemList=Kramurx
+1199.lstPokemon.StringItemList=Laschoking
+1200.lstPokemon.StringItemList=Traunfugil
+1201.lstPokemon.StringItemList=Icognito
+1202.lstPokemon.StringItemList=Woingenau
+1203.lstPokemon.StringItemList=Girafarig
+1204.lstPokemon.StringItemList=Tannza
+1205.lstPokemon.StringItemList=Forstellka
+1206.lstPokemon.StringItemList=Dummisel
+1207.lstPokemon.StringItemList=Skorgla
+1208.lstPokemon.StringItemList=Stahlos
+1209.lstPokemon.StringItemList=Snubbull
+1210.lstPokemon.StringItemList=Granbull
+1211.lstPokemon.StringItemList=Baldorfish
+1212.lstPokemon.StringItemList=Scherox
+1213.lstPokemon.StringItemList=Pottrott
+1214.lstPokemon.StringItemList=Skaraborn
+1215.lstPokemon.StringItemList=Sniebel
+1216.lstPokemon.StringItemList=Teddiursa
+1217.lstPokemon.StringItemList=Ursaring
+1218.lstPokemon.StringItemList=Schneckmag
+1219.lstPokemon.StringItemList=Magcargo
+1220.lstPokemon.StringItemList=Quiekel
+1221.lstPokemon.StringItemList=Keifel
+1222.lstPokemon.StringItemList=Corasonn
+1223.lstPokemon.StringItemList=Remoraid
+1224.lstPokemon.StringItemList=Octillery
+1225.lstPokemon.StringItemList=Botogel
+1226.lstPokemon.StringItemList=Mantax
+1227.lstPokemon.StringItemList=Panzaeron
+1228.lstPokemon.StringItemList=Hunduster
+1229.lstPokemon.StringItemList=Hundemon
+1230.lstPokemon.StringItemList=Seedraking
+1231.lstPokemon.StringItemList=Phanpy
+1232.lstPokemon.StringItemList=Donphan
+1233.lstPokemon.StringItemList=Porygon2
+1234.lstPokemon.StringItemList=Damhirplex
+1235.lstPokemon.StringItemList=Farbeagle
+1236.lstPokemon.StringItemList=Rabauz
+1237.lstPokemon.StringItemList=Kapoera
+1238.lstPokemon.StringItemList=Kussilla
+1239.lstPokemon.StringItemList=Elekid
+1240.lstPokemon.StringItemList=Magby
diff --git a/oxt/PokemonGoIV/DialogStrings_en_US.properties b/oxt/PokemonGoIV/DialogStrings_en_US.properties
index 0ec72a8..ebfc72a 100644
--- a/oxt/PokemonGoIV/DialogStrings_en_US.properties
+++ b/oxt/PokemonGoIV/DialogStrings_en_US.properties
@@ -3,7 +3,7 @@
2.DlgMain.txtPokemon.Label=~Pok\u00e9mon:
3.DlgMain.txtCP.Label=~CP:
4.DlgMain.txtHP.Label=~HP:
-5.DlgMain.txtStarDust.Label=S~tar dust:
+5.DlgMain.txtStardust.Label=S~tardust:
6.DlgMain.txtPlayerLevel.Label=Player ~level:
7.DlgMain.cbxIsNew.Label=This Pok\u00e9mon has ~not been powered-up yet.
8.DlgMain.grpAppraisals.Label=Team Leader Appraisal
@@ -168,3 +168,4 @@
1176.lstPokemon.StringItemList=Togetic
1238.lstPokemon.StringItemList=Smoochum
1239.lstPokemon.StringItemList=Elekid
+1240.lstPokemon.StringItemList=Magby
diff --git a/oxt/PokemonGoIV/DialogStrings_zh_TW.properties b/oxt/PokemonGoIV/DialogStrings_zh_TW.properties
index fa1d90b..98696d4 100644
--- a/oxt/PokemonGoIV/DialogStrings_zh_TW.properties
+++ b/oxt/PokemonGoIV/DialogStrings_zh_TW.properties
@@ -3,7 +3,7 @@
2.DlgMain.txtPokemon.Label=\u5bf6\u53ef\u5922(~P)\uff1a
3.DlgMain.txtCP.Label=~CP:
4.DlgMain.txtHP.Label=~HP:
-5.DlgMain.txtStarDust.Label=S~tar dust:
+5.DlgMain.txtStardust.Label=S~tardust:
6.DlgMain.txtPlayerLevel.Label=\u73a9\u5bb6\u7b49\u7d1a(~L)\uff1a
7.DlgMain.cbxIsNew.Label=\u9019\u96bb\u5bf6\u53ef\u5922\u9084\u6c92\u5f37\u5316\u904e(~N)\u3002
8.DlgMain.grpAppraisals.Label=\u968a\u9577\u8a55\u50f9
@@ -168,3 +168,4 @@
1176.lstPokemon.StringItemList=Togetic
1238.lstPokemon.StringItemList=Smoochum
1239.lstPokemon.StringItemList=Elekid
+1240.lstPokemon.StringItemList=Magby
diff --git a/oxt/PokemonGoIV/DlgMain.xdl b/oxt/PokemonGoIV/DlgMain.xdl
index 9f657ac..02df704 100644
--- a/oxt/PokemonGoIV/DlgMain.xdl
+++ b/oxt/PokemonGoIV/DlgMain.xdl
@@ -1,6 +1,6 @@
-
+
@@ -9,7 +9,7 @@
-
+
@@ -169,6 +169,7 @@
+
@@ -181,8 +182,8 @@
-
-
+
+
@@ -207,8 +208,8 @@
-
-
+
+
@@ -252,34 +253,34 @@
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/oxt/description.xml b/oxt/description.xml
index 013a08d..afd1328 100644
--- a/oxt/description.xml
+++ b/oxt/description.xml
@@ -20,6 +20,7 @@
Pokémon GO IV Calculator
寶可夢 GO IV 計算機
+ Pokémon GO IV Rechner
diff --git a/oxt/pkg-desc/pkg-description.de.txt b/oxt/pkg-desc/pkg-description.de.txt
new file mode 100644
index 0000000..f01d2e3
--- /dev/null
+++ b/oxt/pkg-desc/pkg-description.de.txt
@@ -0,0 +1,4 @@
+PokemonGoIV - Pokémon GO IV Calculator
+Copyright (c) 2016-2017 imacat
+
+Berechnet Individuelle Werte (IVs) von Pokémon.
diff --git a/oxt/pkg-desc/pkg-description.txt b/oxt/pkg-desc/pkg-description.txt
index 03b69c3..4a97d56 100644
--- a/oxt/pkg-desc/pkg-description.txt
+++ b/oxt/pkg-desc/pkg-description.txt
@@ -1,4 +1,4 @@
PokemonGoIV - Pokémon GO IV Calculator
-Copyright (c) 2016 imacat
+Copyright (c) 2016-2017 imacat
Calculates the individual values (IVs) of the Pokémon.