<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><div><div class="">I think we do want to do something along those lines, yes.</div><div class=""><br class=""></div><div class="">Your expression misses some phrases, in particular the Etoys tile inscriptions:</div><div class=""><br class=""></div><div class=""><div class=""><span style="white-space:pre" class="Apple-tab-span">        </span>"Count tile phrases"</div><div class=""><span style="white-space:pre" class="Apple-tab-span">        </span>domains := Dictionary new.</div><div class=""><span style="white-space:pre" class="Apple-tab-span">        </span>GetTextExporter2 new appendVocabularies: domains.</div><div class=""><span style="white-space:pre" class="Apple-tab-span">        </span>phrases := Set new.</div><div class=""><span style="white-space:pre" class="Apple-tab-span">        </span>domains do: [:translations | phrases addAll: translations keys].</div><div class=""><span style="white-space:pre" class="Apple-tab-span">        </span>phrases size</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>"==&gt;&nbsp;748 phrases"</div></div><div class=""><div class=""><br class=""></div><div class="">These tile phrases should be a separate pot IMHO, because those are the most important ones to translate.</div><div class=""><br class=""></div><div class="">Other than that, splitting by category seems reasonable. And since development is organized by packages now, maybe we should just have one po file per top-level category? Even if there is only 1 phrase in it?&nbsp;</div><div class=""><br class=""></div><div class=""><div class="">I'm sure Korakurider has thought about that. Let's hear him :)</div><div class=""><br class=""></div><div class="">Here's my code to count phrases per package:</div><div class=""><br class=""></div></div><div class=""><div class=""><div class="">==============</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>"Count non-tile phrases per category"</div></div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>domains := Dictionary new.</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>GetTextExporter2 new&nbsp;</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                </span>appendStringReceivers: #translated into: domains;</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                </span>appendStringReceivers: #translatedNoop into: domains.</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>phrases := Dictionary new.</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>domains &nbsp;do: [:translations |</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                </span>translations keysAndValuesDo: [:phrase :mrefs |</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                        </span>mrefs do: [:mref |</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                                </span>category := (SystemOrganization categoryOfElement: &nbsp;mref classSymbol)</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                                        </span>copyUpTo: $-.</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                                </span>(phrases at: category ifAbsentPut: [Set new])</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                                        </span>add: phrase]]].</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>categories := Bag new.</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>phrases keysAndValuesDo: [:cat :strings |</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">                </span>categories add: cat withOccurrences: strings size].</div><div class=""><span style="white-space: pre; " class="Apple-tab-span">        </span>categories sortedCounts</div><div class="">==============</div><div class=""><br class=""></div><div class=""><div class="">There are 4251 non-tile phrases (sum of the below). Adding the&nbsp;748 tile phrases and subtracting some duplicates this is in the&nbsp;ballpark of the&nbsp;4412 phrases on pootle.&nbsp;</div><div class=""><br class=""></div></div></div><div class=""><div class="">1427 Morphic</div><div class="">751 MorphicExtras</div><div class="">506 Etoys</div><div class="">262 System</div><div class="">252 Connectors</div><div class="">201 Tools</div><div class="">182 Sound</div><div class="">70 Movies</div><div class="">67 ST80</div><div class="">65 Protocols</div><div class="">62 Multilingual</div><div class="">60 Nebraska</div><div class="">55 Sugar</div><div class="">48 VideoForSqueak</div><div class="">38 WS</div><div class="">30 Graphics</div><div class="">28 Network</div><div class="">25 GStreamer</div><div class="">24 Kernel</div><div class="">20 Flash</div><div class="">19 Files</div><div class="">13 Compression</div><div class="">11 Collections</div><div class="">10 FSM</div><div class="">8 Balloon</div><div class="">7 BroomMorphs</div><div class="">5 Monticello</div><div class="">2 SMLoader</div><div class="">1 DAVServerDirectory</div><div class="">1 UserObjects</div><div class="">1 TrueType</div></div><div class=""><br class=""></div><div class="">If we wanted to split Morphic further, these would be the numbers (but&nbsp;I don't think we should):</div><div class=""><br></div><div class=""><div class="">569 Morphic-Kernel</div><div class="">251 Morphic-Worlds</div><div class="">161 Morphic-Mentoring</div><div class="">135 Morphic-Basic</div><div class="">100 Morphic-Games</div><div class="">67 Morphic-Widgets</div><div class="">48 Morphic-Experimental</div><div class="">47 Morphic-Windows</div><div class="">19 Morphic-Demo</div><div class="">18 Morphic-Scripting Tiles</div><div class="">13 Morphic-Components</div><div class="">13 Morphic-Support</div><div class="">12 Morphic-Text Support</div><div class="">8 Morphic-TrueType</div><div class="">7 Morphic-Menus</div><div class="">7 Morphic-Pluggable Widgets</div><div class="">6 Morphic-Books</div><div class="">5 Morphic-PDA</div><div class="">1 Morphic-PartsBin</div></div><div class=""><br></div><div class="">There is a slight problem with extension methods (methods defined in *categories), #translated currently would look for those in the wrong package:</div><div class=""><br></div><div class=""><div class="">==============</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>"Count non-tile phrases that are in extension methods"</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>domains := Dictionary new.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>GetTextExporter2 new</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>appendStringReceivers: #translated into: domains;</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>appendStringReceivers: #translatedNoop into: domains.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>extensionMethods := Set new.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>MCWorkingCopy allManagers do: [:wc |</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>extensionMethods addAll: wc packageInfo extensionMethods].</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>phrases := Dictionary new.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>domains &nbsp;do: [:translations |</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>translations keysAndValuesDo: [:phrase :mrefs |</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                        </span>mrefs do: [:mref |</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                                </span>(extensionMethods includes: mref) ifTrue: [</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                                        </span>category := (mref category copyUpTo: $-) asLowercase.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                                        </span>(phrases at: category ifAbsentPut: [Set new])</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                                                </span>add: phrase]]]].</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>categories := Bag new.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>phrases keysAndValuesDo: [:cat :strings |</div><div class=""><span class="Apple-tab-span" style="white-space:pre">                </span>categories add: cat withOccurrences: strings size].</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>categories sortedCounts</div><div><div class="">==============</div><div><br></div></div></div><div class=""><div class="">199 *etoys</div><div class="">83 *morphicextras</div><div class="">18 *connectors</div><div class="">8 *morphic</div><div class="">5 *sound</div><div class="">1 *pango</div></div><div class=""><br></div><div class="">We need to make #translated deal with this. I can think of a simple but inefficient way to do it - maybe it wouldn't hurt that much?</div><div class=""><br></div><div><span style="font-size: 12px; " class="Apple-style-span"><div style="font-family: Helvetica; " class=""><span style="font-family: Helvetica; " class="Apple-style-span">- Bert -</span></div><div class=""><font face="Helvetica" class="Apple-style-span"><br class=""></font></div></span></div><div class=""><div class=""><div class=""><br></div></div></div></div></div></body></html>