http://plone.org/products/plone/roadmap/16
Motivation
動機づけ
The current local-roles implementation in Zope makes it impossible to reduce the rights given to users
Zopeの現在のローカル役割実施は、ユーザーに与えられる権利を減らすことを不可能にします
when you go deeper in folder hierarchy since roles, once given to a user, cannot be taken away from a user. Therefore it is impossible to have a really flexible and moreover easy-to-use way of dealing with security. An ideal situation would be that you are able to provide access to your site-root to everybody by giving the whole group the proper role and when you go deeper in the structure, you start restricting access by redefining the local-roles in that context. Right now, you can't really do that without using tricks with workflows and even then it is very limited and very confusing and counter-intuitive.
あなたがフォルダでより深くなるとき、一旦ユーザーに与えられるならば、役割から階層はユーザーから取られることができません。したがって、安心してカードを配る本当に柔軟でさらに使いやすい方法を持つことは、不可能です。理想的な状況はあなたが全グループに適当な役割を与えることによって誰にでもあなたのサイト-根への接近を提供することができるということです、そして、あなたが建造物でより深くなるとき、あなたはその前後関係でのローカル役割を再定義することによってアクセスを制限し始めます。たった今、あなたは仕事の流れでトリックを使用することなく本当にそうすることができません、そして、それでも、それは非常に制限されて非常に混乱させて直観に反しています。
Even when PLIP7 is fully functional, you still can't restrict access to certain folders inside GroupFolders for users that have access to the GroupFolder itself. You can think: why would you do that? Well, there are numerous situations where you want this. Of course you can define a workflow-state that give permissions to certain roles but once you have given a user this role and you want to further restrict his access to subfolders, the only thing you can do is to create a new role and a new workflow-state, a new role that the user doesn't have already. But this only postpones the problem to a folder level deeper. This PLIP describes the solution and would make live a lot easier.
PLIP7 が完全には機能的なときでも、あなたはGroupFolderにアクセスするユーザーのためにGroupFoldersの中にまだアクセスを特定のフォルダに制限することができません。あなたは考えることができます:なぜ、あなたはそうするでしょうか?さて、あなたがこれを望む多数の状況が、あります。もちろん、あなたは特定の役割に許可を与える仕事の流れ-州を定めることができます、しかし、あなたがユーザーにこの役割を与えた、そして、一旦あなたがさらに彼のアクセスをサブフォルダに制限したいならば、あなたがすることができる唯一のものは新しい役割と新しい仕事の流れ-州(ユーザーがすでに持たない新しい役割)をつくることになっています。しかし、これはより深く問題をフォルダレベルに延期するだけです。このPLIPは解決を記述して、ライブをだいぶより簡単にします。
Proposal
提案
The proposol for this PLIP is to enhance the way GRUF checks for local-roles in such a way that before it traverses up
このPLIPのためのproposolは、GRUFがそれの前の上で横断するそのような方向でのローカル役割について調べる方法を強化することです
the folder hierarchy, it checks if the current folder is set to acquire local-roles from parents or not. This check is done for every parent it finds on its way up the tree.
フォルダ階層、それは現在のフォルダが両親からローカル役割を得る用意が整っているかどうか調べます。このチェックは、それが木の上で途中で発見するあらゆる親のためにされます。
Implementation
実施
Implementing looks quite simpel and I have done some tests that have been very promising. At first, in the Sharing page
インプリメントすることは非常にsimpelに見えます、そして、私は非常に有望だったいくらかのテストをしました。最初で、Sharingページで、
in Plone a check-box is added where the user with proper permissions can check if he wants to acquire the local-roles from parent folders or not. The selection is then stored as a property on the folder/object.
適当な許可をもつユーザーが彼が親のようなフォルダからローカル役割を得たいかどうか調べることができる所で、Ploneで、チェックボックスは加えられます。選択は、それからフォルダ/物の上に資産として保存されます。
The next step would be to alter the function in GRUF that returns the local-roles in a given context. As far as I can see this happens in GRUFUser.py in the function getRolesInContext. Inside that function is a simple loop that does the traversal. In this loop a check needs to be done on the current object to see if it has set the property for acquisition or not. If set to false, the loop will stop.
次のステップは、与えられた前後関係でのローカル役割を返すGRUFで、機能を変えることになっています。私がわかることができる限り、これは機能 getRolesInContextでGRUFUser.pyで起こります。機能する内部は、横断をする単純なループです。このループでは、チェックはそれがプロパティを獲得に設定したかどうか見るために現在の物の上でされる必要があります。偽にセットされるならば、ループは止まります。
As I said, I did some tests and it seemed to work. I did encounter a problem that I couldn't fix and it seemed at that time only remotely related to this but I'm not sure exactly what this problem was back then (sorry). I expect that when enough skilled people take a look at this, this can be fixed. And like I said, the idea is simple but the implications are huge and could make our lives sooo much easier.
私が言ったように、私はいくらかのテストをしました、そして、それは働くようでした。私は私が固定することができなかった問題に遭遇しました、そして、それは離れてその時これに関連があるようなだけでした、しかし、私はこの問題がそうであった必ずしもことがそれから後退する(残念に思う)と確信しません。私は、十分な熟練した人々がこれを見てみるとき、これが固定されることができると思っています。そして、私が言ったように、考えは単純です、しかし、含みは巨大で、我々の命soooを非常により簡単にすることができました。
#24: Confirm changes before unloading form
動機づけ
しばしば、ユーザーがたくさんのテキストを書いたあとにて、「保存」ボタンのクリックを忘れるか、偶然リンクをクリックするか、別の URL(おそらく他のアプリケーションから呼び出されたURL)へ移動するということがあります。 そのような状況で、Web Browser(plone)があなたが本当に画面を遷移して、編集内容を失ってもよいか確認することが望ましいです。
提案
On browsers which support it, Plone should warn before allowing the user to navigate away from a page which contains an edited form. Right now, IE and Mozilla 1.7+ support the onBeforeUnload event that is fired before the browser navigates away. The event allows for displaying a form which gives the user the option to continue to navigate away from the page, or to cancel the navigation and return to editing the form. それを支持するブラウザーで、Ploneはユーザーが編集された形式を含むページから離れて操縦するのを許す前に警告しなければなりません。たった今、IE とMozilla 1.7+は、ブラウザーが離れてナビゲートする前に、焼かれるonBeforeUnloadイベントを支えます。イベントは、ページから離れて操縦するか、ナビゲーションをキャンセルして、形式を編集することに戻り続けるためにユーザーにオプションを与える形式を示すことを考慮に入れます。
The idea is to add handling code linked to this event, that checks if the user has edited/modified the form and if no submit is clicked, he is presented a dialog where he can confirm his action. Browsers that do not support the event won't notice this mechanism (graceful degredation). 考えはこのイベントとの関連があるコードを取り扱うことを加えることになっています、ユーザーがedited/modifiedを持つならば、形式ともしもが少しも降参しないことを確認しますチャンネルを変えます、彼は彼が彼の行動を確かめることができる対話を贈られます。イベントを支えないブラウザーは、このメカニズム(上品なdegredation)に言及しません。
The handler should ignore the supplementary forms which can appear on a page (such as the search box, or login portlet). In addition it should be able to work cleanly with add-on products such as Epoz and Kupu where additional code may be required to detect edits. ハンドラーは、ページ(例えば検索ボックスまたはログインportlet)に載ることができる補足書式を無視しなければなりません。それに加えて、それは付加的なコードが編集を見つけることを要求されるかもしれないEpozとKupuのようなアドオン製品できれいに働くことができなければなりません。
実装
The original idea is base on an article Tracking changes to a form by Jake Howlett. A sample implementation with documentation and unit tests exists in the kupu editor. 最初の考えは、記事Trackingのベースがジェイクハウレットによって形式に変わるということです。ドキュメンテーションと単位テストによるサンプル実施は、kupuエディタの中に存在します。 Deliverables 配達可能なもの
What code and documentation needs to be produced? In addition to the standard items: 生じられるどんなコードとドキュメンテーションニーズ?標準のアイテムに加えて:
Unit tests 単位テスト
(There isn't any framework for javascript unit tests in Plone, so one will have to be added.) (javascript単位テストに対する少しのフレームワークもPloneでありませんので、1は加えられなければならないです。) *
Localization 局地化
The kupu code to be used as a base does not currently handle localization. The simplest way seems to be to add a translated string to plone_javascript_variables.js ベースとして使用されるkupuコードは、局地化を現在取り扱いません。最も単純な方法は、翻訳されたストリングをplone_javascript_variables.jsに加えることになっているようです *
Documentation ドキュメンテーション
Consideration for special fields 特別なフィールドに対する思いやり
Plone has a lot of special form fields that use javascript themselves. We need to take special considerations for these. Examples to investigate : Epoz, Kupu, Archetypes widgets (the boolean and the date ones do some js trickery) Ploneには、彼ら自身javascriptを使う多くの特別な形式フィールドがあります。我々は、これらに対する特別な思いやりをとる必要があります。調査する例:Epoz、Kupu、Archetypes装置(ブーリアンと日付ものは、数js詐欺をします)
Epoz Epoz It is probably easiest to get Epoz to add in support for PLIP24 when it is used in a PLIP24-enabled Plone. それがPLIP24対応Ploneで使われるとき、PLIP24に対する支持において加えるEpozを得ることは多分最も簡単でしょう。 Kupu Kupu It is proposed to use the existing code from Kupu as a base for the implementation. The main requirement for Kupu therefore is to maintain a compatible API, and to make it possible for Kupu to give precedence to the Plone handler code. 実施のためにベースとしてKupuから既存のコードを使用することは、提案されます。 Kupuの主な必要条件は、したがって、互換性を持つAPIを維持して、KupuがPloneハンドラーコードを優先することを可能にすることです。 Calendar widget カレンダー装置 The calendar widget uses a hidden field to send back the value entered, and a set of select fields which are used client-side only. The code must ignore the state of the client-side fields (since they are updated by javascript after the form has loaded) but must not ignore the hidden field. カレンダー装置は、入れられる価値と使い古したクライアント側だけである一組の選ばれたフィールドを送り返すために、隠れたフィールドを使用します。コードはクライアント側フィールド(形式がロードしたあと彼らがjavascriptによって更新される時から)の国を無視しなければならないが、隠れたフィールドを無視してはなりません。 Archetypes boolean widget 原型ブールの装置 As with the calendar, this uses a combination of hidden and visible controls. In this case the visible control has the correct initial setting so it is sufficient to track the state of either the visible or the hidden control, or both. i.e. there should be no issues here. カレンダーと同様に、これは隠れて見える規制の組合せを使います。この場合、見える支配は、正しい初期設定を持ちますので、それは見えるか隠れた支配または両方ともの国を追跡するのに十分です。すなわち、問題がここにあってはなりません。 Others 他 The documented api should give sufficient control for most conceivable forms. 文書化されたapiは、大部分の考えられる形式のために十分な支配をしなければなりません。
#28: AT Content Types as default types
Motivation 動機づけ
Proposal 提案
Currently Plone 2.0 is using the types from CMFDefault, CMFTopic and CMFCalendar. ATContentTypes (ATCT) is a feature improved reimplementation of the default types using Archetypes. 現在、Plone 2.0はCMFDefault、CMFTopicとCMFCalendarからタイプを使っています。ATContentTypes(ATCT)は、 Archetypesを使っているデフォルトタイプの特集改善されたreimplementationです。 Implementation 実施
ATContentTypes is a seperate product which depends on Archetypes (>1.2.5). Migration from CMF types to ATCT types is part of the product. ATContentTypesは、Archetypes(>1.2.5)に依存するseperateな製品です。CMFタイプからATCTタイプへの移動は、製品の一部です。
To make ATCT the default types and replacements of CMF types: ship ATCT with plone and make it a requirement run the migration of ATCT in the migration of plone replace the CMF types with the ATCT types disable the CMF types ATCTにCMFのデフォルトタイプと代わりを作ることは、タイプします: ploneでATCTを出荷して、それに要求をしてください ploneの移動において、ATCTの移動を走らせてください CMFタイプをATCTタイプと取り替えてください CMFタイプを使用不能にしてください
Right now (2003-03-31) ATCT is mostly working and I'll publish a first testing beta when AT 1.2.5-rc5 is out. たった今ATCTは大部分は働いています(2003-03-31)、そして、AT 1.2.5-rc5が外出しているとき、私は最初のテストベータを発表します。
#32: New mail out implementation
Motivation 動機づけ
The old MailHost isn't secure and has no support for validating email addresses 古いMailHostは固定されていなくて、電子メールアドレスを確認することに対する支持をしません Proposal 提案
Replace MailHost by SecureMailHost MailHostをSecureMailHostと取り替えてください Implementation 実施
Ship Plone 2.1 with SecureMailHost and replace the old templates and stuff in PloneTool with the new API SecureMailHostでPlone 2.1を出荷して、新しいAPIでPloneToolで古いテンプレートとものを取り替えてください
#37: Add a sitemap feature to Plone
Motivation 動機づけ
This is a needed feature for any portal. これは、どんな入口のためでもの必要とされた特徴です。 Proposal 提案
Implementation 実施
#40: Integrate GRUF3 into Plone
Motivation 動機づけ
GRUF is a Plone-independant product, but Plone is now tied to GRUF for groups management at the moment. So, when GRUF evolves, we have to keep Plone in sync in some way. GRUFはPloneindependantな製品です、しかし、Ploneは現在現在グループ管理のためにGRUFと結びつきます。それで、GRUFが進化するとき、我々はどうにかPloneを同期に保たなければなりません。 Proposal 提案
GRUF 3 is a refactored version of GRUF, supporting a new cleaner API, and a better integration of LDAPUserFolder. Current plans are to include local role restrictions to GRUF 3.1 and other evolutions. GRUF 3はGRUFのrefactoredされたバージョンです。そして、新しいよりきれいなAPIとLDAPUserFolderのより良い統合を支持します。現在の計画は、GRUF 3.1と他の進化にローカル役割規制を含むことになっています。 It's therefore interesting to integrate those evolutions into Plone (2.0.x or 2.1). それらの進化をPlone(2.0.xまたは2.1)に溶け込ませることは、したがって、面白いです。 Implementation 実施
Currently, the only modifications to make GRUF3 work with Plone2 are the prefs_ forms and scripts and some unit tests. They are already modified in the pjgrizel-gruf3-branch of SVN and work correctly (fixing, by the way, some of the things user complained about in Plone 2 such as groups nesting). 現在では、GRUF3をPlone2で働かせる唯一の修正は、prefs_形式とスクリプトといくらかの単位テストです。彼らはSVNのpjgrizel -gruf3-枝ですでに修正されて、正しく働きます(ところで、ユーザーが巣を作っているグループのようなPlone 2で不満を言ったものの一部を固定する)。
#41: Make Plone more aware of and prepared for multilingual content
Motivation 動機づけ
Plone is already very good at handling multilingual UI. There are a lot of translations available, and multilingual is one of the features that helps us sell Plone. Now is the time to up the ante by making Plone more aware of and better prepared for handling multilingual content. Plone は、多言語使用のUIを取り扱うことがすでに非常に上手です。利用できる多くの翻訳があります、そして、マルチリンガルは我々がPloneを売るのを援助する特徴のうちの1つです。今はよりわかっているPloneを作ることによる賭け金の上での時間であって、よりよく、多言語使用の内容を取り扱うことに備えました。
We need different multilingual content implementations to use the same interface to be able to switch between them and easily plug into sites. We don't want multilingual content in the core of Plone, but we want to make it easier to integrate. 我々は、彼らの間で変わって、簡単にサイトに接続することができる同じインターフェースを使用するために、異なる多言語使用の内容実現例を必要とします。我々はPloneの中心に多言語使用の内容が欲しくはありません、しかし、我々はそれを統合するのがより簡単にしたいです。 Proposal 提案
Make Plone more prepared for and aware of multilingual content by adding an interface for translatable content. よりPloneを翻訳できる内容のためにインターフェースを加えることによる多言語使用の内容の備えができていて知っているようにしてください。 Implementation 実施
Add ITranslatable interface to Plone. The interface is originally suggested by Ben Saller, and is used for handling translatable content. It has methods for retrieving translations, handling canonical translations and so on. It can currently be seen in LinguaPlone and the psol-redux branch of I18NLayer. ITranslatable なインターフェースをPloneに加えてください。インターフェースが当初ベンSallerによって提案されて、翻訳できる内容を取り扱うために使われます。それには翻訳を取り戻す方法があります。そして、規範的な翻訳とその他を取り扱います。それは、LinguaPloneとI18NLayerの psol-redux枝で現在見られることができます。
アイテムの編集を行っているときに、画面が狭いなと感じている人のために追加された機能のようです。
全画面モードに切り替えると、ロゴ、右上のアクション、左右のポートレットが表示されなくなります。
全画面モードの画面は以下のような感じになります。
ライブ検索は以下のような機能によって実現されています。
plone_scripts/livesearch_reply.py)plone_styles/public.css.dtml)plone_templates/global_searchbox.pt)plone_3rdParty/livesearch.js)
原文: #73: Auto-generate short names from title
ショートネームの概念はユーザに混乱を生じさせます。 また、自動生成される ID (document.yyyyy-mm-dd.random)はとても長くて見づらいと思います。
ショートネームの自動生成時には空白文字はハイフン(-)に変換されます。
ここでアンダーライン(_)を使用しないのは、リンク文字列などに含まれるとそこが空白のように見えるからです。
また、Google ではアンダーラインを語のセパレータとみなさないことも理由の一つとなっているようです。
この変換は CMFPlone/PloneTools.py の normalizeString メソッドで実現されています。
ただし、日本語のタイトルについては unicode の16進コードをそのまま id として使うため、結局見づらかったりします...
#74: Add cut/copy/paste/delete and batch links to the content menu bar
Motivation 動機づけ
Users should not have to go to the folder_contents page each time they want to cut/copy or paste a single item.
彼らが切りたくて/コピーするか、一つのアイテムにもペーストするたびに、ユーザーは『folder_contents』ページへ行く必要はありません。
the content tab is used only when an owner/manager needs to perform actions on multiple items in a folder. It is more natural to call that action batch and to place it close to the cut/copy/paste/delete links in the content menu.
所有者/マネージャがフォルダで複数のアイテムに及ぼす働きを実行する必要がある時だけ、『内容』タブが使われます。その行動『バッチ』を呼んで、内容メニューでcut/copy/paste/delete関連の近くにそれを置くことは、より自然です。
Assumptions
見せかけ
published) Must be resolved before this plip/branch can mergeable, assuming that it is now related to the Batch link appearing in the content menu.
*それが現在、内容メニューで見かけている『バッチ』関連に関連があると仮定して、バグ#3653(デフォルト文書が=が『公表しました』と述べる用意が整っているとき、目次タブは隠されます)Mustは、mergeableなこのplip/枝缶の前に解決されます。
Proposal
提案Add actions to the content menu bar that lets the user cut/copy/paste/delete an object from any page related to that content. 行動をどんなページからでもの物がその内容と関連づけたユーザーcut/copy/paste/deleteを動かす内容メニューバーに加えてください。
In addintion, remove the content action from the content tabs and replace it by a batch link in the content menu.
addintionに、内容タブから『内容』アクションを取り除いて、内容メニューでそれを『バッチ』関連と取り替えてください。
Implementation
実施
Use of the patch written by Martin Opstad Reistadbakk (sent to plone-devel on march 2nd) マーティンオプスタReistadbakk(第2に行進の上にplone-強打に送られた)によって記述されるパッチの活用法
add i18n tags i18nタグを加えてください
In ActionTool ActionToolで
edit_menu category. This is done at Plone instanciation, ported to migration script 2.1 alpha.
*3つの行動は、『edit_menu』カテゴリーの下に加えられました。これはPlone instanciationでされて、2.1のアルファを移動スクリプトに運びました。In skins/plone_templates/global_contentmenu.pt 皮膚/plone_templates/global_contentmenu.ptで
alert_really_delete is translated from a python expression, as it will appear in a javascript expression for an onclick attribute of the anchor. This might not be recognized by i18ndude (to be tested) so it should be added to the manual pot (after having tried this issue)
*それがアンカーのonclick特質のjavascript式で現れて、『alert_really_delete』はパイソン表現から翻訳されます。それが手動ポット(この問題をためした後に)に加えられなければならないように、これはi18ndude(テストされるために)によって認められないかもしれません#75: Blacklisting contenttypes for quicksearch and searchform
Motivation 動機づけ
A good example for the use of the mentioned blacklist would be the Plone.org site. 前述のブラックリストの使用のための良い例は、Plone.orgサイトです。 When using the quicksearch, most of the search hits are coming from the issue collector, thus polluting the search result. quicksearchを使うとき、大部分の検索ヒットは問題コレクターから来ています。このように、検索結果を汚染します。 It would be convenient if the Collector Issue contenttype could be blacklisted. Collector Issue contenttypeがブラックリストに記載されることができるならば、それは便利でしょう。 Proposal 提案
The catalog searches for the standard plone quicksearch and advanced search are in a skin script/template in the default Plone skin. These catalog searches should be changed is such a way that they use the blacklist to exclude certain content types. 標準のplone quicksearchとエキスパート検索のカタログ検索は、デフォルトPlone皮膜の中に皮膚スクリプト/テンプレートであります。これらのカタログ検索は変わらなければなりません。そして、彼らが特定の内容を除外するブラックリストを用いられるそのような方法はタイプです。 Implementation 実施
The blacklist of contenttypes can placed in a lines property of the portal_properties/site_properties or the portal_catalog tool. portal_properties/site_propertiesまたはportal_catalogツールの線財産に置かれるcontenttypes缶のブラックリスト。
Searching in Plone is provided by the following skin templates: Ploneで捜すことは、以下の皮膚テンプレートで提供されます:
search.pt is not doing a direct call to portal_catalog, but uses the skin script queryCatalog.
search.ptはportal_catalogに直接の呼び出しをしていなくて、皮膚スクリプト『queryCatalog』を使います。
A new method in the portal_utils tool will be provided getUserFriendlyTypes that is able to get
portal_utilsツールにおける新しい方法は、それが得ることができる『getUserFriendlyTypes』を提供されます
a list of all usable types (all types minus the blacklist). When provided with a typeList argument
使える全てのリストは、タイプします(全てのタイプ引くブラックリスト)。typeList引数を備えているとき、
containing a list of types, this list if filtered for blacklisted types.
タイプ(ブラックリストに記載されたタイプのためにフィルターをかけられるならばこのリスト)のリストを含むこと。
The lines property should be named unfriendly_types.
線資産は、『unfriendly_types』という名前をつけられなければなりません。
In this way maintenance through the ZMI is possible. However, this is quite error prone. このように、ZMIを通してのメンテナンスは、可能です。しかし、これはうつ伏せの非常にエラーです。
Better solution is a configlet where the blacklist can be maintained through point-and-click, but this can still use the same backend.
より良い解決はブラックリストが『ポイント&クリック』を通して維持されることができるconfigletです、しかし、これは同じバックエンドをまだ使うことができます。
#76: Extended author information and (portal) feedback
Definitions 定義
author 著者 Creator in DC, the portal member that has created the content. Must be a real member, members defined at a higher level in the Zope instance are/will remain tricky コロンビア特別区(内容を作成した入口メンバー)の作者。本物の部材(巧妙なZope例are/will残りでより高いレベルで定められるメンバー)でなければなりません
Motivation 動機づけ
When viewing content it should be possible to retrieve more information about its author, view other content by this author and send feedback to this author. 内容を見るとき、その著者に関する詳細な情報を検索して、この著者によって他の内容を見て、この著者にフィードバックを送ることは可能でなければなりません。 Assumptions 見せかけ
Proposal 提案
The byline template must be changed so it shows the full name of the author, the date the content became effective and a link to an author page listing specific details about the author, such as: それが著者のフルネーム、内容が起こった日付と、例えば、著者について特定の詳細をリストしている著者ページへのリンクを示すように、bylineテンプレートは変わらなければなりません:
Implementation 実施
The author page is a CPT that gets passed the authorname as part of the traverse_subpath, i.e. /author/username 著者ページは、traverse_subpathの一部としてauthornameを渡されるCPTです‖すなわち/著者/ユーザー名
Update[optilude] - if no traverse_subpath is given, it will also look at the Creator of the parent object; that way, you can go to /Members/member1/document1/author to get author info on that document. This also makes it easier to navigate back (a link is provided) to the document.
Update [optilude]−traverse_subpathが与えられないならば、それはまた、親オブジェクトの創造主を見ます;そのように、あなたはそのドキュメントに関する著者情報を得るために『/議員/member1/document1/著者』ことをがんばることができます。これも、文書に背中(関連は提供されます)を進むことをより簡単にします。
Feedback uses the referer header to get (or guess) the context for which the feedback is being sent and who the author of this content is if the feedback is to be sent to the author. フィードバックは、フィードバックが送られている、そして、フィードバックが著者に送られることになっているならば、この内容の作成者がそうである前後関係を得る(または推測します)ために、refererヘッダを使います。
Anonymous users must login first to send feedback. The current portlet currently has a bug that prevents proper redirection to the original authorpage when logging in - this will be fixed (and the portlet will be better cachable in the process as well) 最初にフィードバックを送る匿名のユーザー必要なものログイン。現在のportletには現在、ログインするとき、原物のauthorpageに適当なリダイレクションを防ぐバグがあります−これは固定されます(そして、portletは同様にプロセスにおいてよりよくcachableです)
Other content by this author will be implemented by searching all content by this author and by iterating over this entire content listing, building groups of content per content type. この著者による他の内容はこの著者によって全ての内容を捜すことによってインプリメントされます、そして、もう一度この全ての内容リストを繰り返すことによって、内容につき内容の建築群はタイプします。
The authors address must not be revealed in this proces. 著者アドレスは、このprocesで現れられてはなりません。
#77: Constrain addable types on per-folder basis
Motivation 動機づけ
It is a very common use-case to want to have a folder usable only for news items, only for events etc. Currently, this requires making a whole new content type, or mangling getNotAddableTypes.py. それはニュースアイテムだけのために使えるフォルダをイベントその他賛成にしたい非常に一般の使用事件です。そして、現在では、これは全く新しい内容をタイプさせるか、getNotAddableTypes.pyをたたきつぶすことを必要とします。 Proposal 提案
Implementation 実施
NOTE: There are two branches, one in ATCT and one in CMFPlone, and these two branches are shared by PLIPs 77 and 78, since they are closely related and were developed in parallel. The branches are: 注:2つの枝(ATCTの1とCMFPloneの1)があります、そして、彼らが密接に関連があって、平行に発育した時から、これらの2つの枝はPLIPs 77と78によって共有されます。枝は、以下の通りです
On the "refectoring" branch, dependencies have been refactored so that the marker interfaces are in CMFPlone, which ATCT optionally imports if HAS_PLONE2 is true. ConstrainTypesMixin is still defined in ATCT. 「refectoring している」枝の上で、目印インターフェースがCMFPloneであるように、属国はrefactoredされました。そして、HAS_PLONE2が真実ならば、それをATCTは任意に輸入します。ConstrainTypesMixinは、ATCTでまだ定められます。
In the long run, the interface could be pushed down to CMFCore, and the mixin down to Archetypes. 長い目で見れば、インターフェースはCMFCoreとArchetypesまでのmixinに押し下げられることができました。
"#78: "Display menu to select default view
Motivation 動機づけ
Let's get rid of CMFPhotoAlbum. :) You should be able to do this by having a CMFPhotoAlbumを取り除きましょう。:)あなたは、持つことによってこうすることができるはずです photoalbum photoalbum view of a folder and selecting this instead of the standard フォルダで、標準の代わりにこれを選んでいる表示 folderlisting folderlisting. The same applies to many other use cases. 。同じことは、多くの他の使用事件にあてはまります。 Proposal 提案
We may also want a configlet for registering new templates with tool 我々は、また、ツールで新しいテンプレートを登録するために、configletが欲しいかもしれません Implementation 実施
NOTE: There are two branches, one in ATCT and one in CMFPlone, and these two branches are shared by PLIPs 77 and 78, since they are closely related and were developed in parallel. The branches are: 注:2つの枝(ATCTの1とCMFPloneの1)があります、そして、彼らが密接に関連があって、平行に発育した時から、これらの2つの枝はPLIPs 77と78によって共有されます。枝は、以下の通りです
On the "refectoring" branch, dependencies have been refactored so that the marker interfaces are in CMFPlone, which ATCT optionally imports if HAS_PLONE2 is true. ConstrainTypesMixin is still defined in ATCT. 「refectoring している」枝の上で、目印インターフェースがCMFPloneであるように、属国はrefactoredされました。そして、HAS_PLONE2が真実ならば、それをATCTは任意に輸入します。ConstrainTypesMixinは、ATCTでまだ定められます。
In the long run, the interface could be pushed down to CMFCore, and the mixin down to Archetypes. 長い目で見れば、インターフェースはCMFCoreとArchetypesまでのmixinに押し下げられることができました。
Motivation 動機づけ
Being able to designed related items is something that belongs in a cms. ATCT already supports this but there is no view for it yet. デザインされた関連したアイテムに有能であることは、cmsの項に入る何かです。ATCTはすでにこれを支持します、しかし、それに対する計画がまだありません。 Proposal 提案
ATCT already has the proper field and widget. We need to modify the various templates to show the relations. ATCTは、すでに適当なフィールドと装置を持っています。我々は、関係を示すためにいろいろなテンプレートを修正する必要があります。 Implementation 実施
Each ATCT-view template will display a fieldset at the bottom of the page that shows all objects that it relates to combined with objects that relates to this object (back-references). 各々のATCT-表示テンプレートは、それが関するものである全ての物がこの物(後方参照)に関するものである物と組み合わさったことを示すページの底で、fieldsetを示します。
Motivation 動機づけ
The current implentation of the navigation tree is consuming a lot of resources because it is waking objects and has unnecessary complexity. それが物を甦らしていて、不必要な複雑さを持つので、ナビゲーション木の現在のimplentationは多くの資源を消費しています。 Proposal 提案
Refactor the navtree-generating method by backporting the approach used in NavigationPortlets. アプローチがNavigationPortlets.で使ったbackportingによってRefactor navtreeを生み出している方法 Implementation 実施
NavigationPortlet has a far more efficient approach to building the navigation tree by using ExtendedPathIndex. But this product is currently part of PlonePortlets. The method that generates the tree will be inserted in PloneTool.py and the necessary changes in the catalog tool are added in a new setupNavTree method. NavigationPortlet は、ExtendedPathIndexを用いてナビゲーション木を造ることへのはるかにより効果的なアプローチをします。しかし、この製品は、現在 PlonePortletsの一部です。木を生み出す方法はPloneTool.pyに挿入されます、そして、カタログツールの必要な変化は新しい setupNavTree方法で加えられます。
The following files are marked for deletion: 以下のファイルは、削除の対象に選ばれます:
StatelessTree StatelessTree
StatelessTreeNav.py StatelessTreeNav.py
The setupNavTreeStyleSheet method in StatelessTreeNav.py will be moved to Portal.py All options used in the current navtree stylesheet will available for migration purposes. StatelessTreeNav.pyにおけるsetupNavTreeStyleSheet方法は、移動目的に利用できる現在のnavtree stylesheet意志で使用されるPortal.py Allオプションの方へ動かされます。
”#81: Workflow history in byline”:http://plone.org/products/plone/roadmap/81
Motivation 動機づけ
History information is too valuable to be put away deep down in a workflow subpage. 歴史情報は、仕事の流れsubpageで深く下にしまわれるにはあまりに貴重です。 Assumptions 見せかけ
User is logged in. ユーザーは、中で記録されます。 Proposal 提案
Add the workflow history in an expandable region in the byline of each object. 各々の物のbylineで、拡張可能な地域の中に仕事の流れ史を加えてください。 Implementation 実施
Basically copy the history from the advanced workflow page to the byline. 基本的には、歴史を先進の仕事の流れページからbylineまでコピーしてください。
#82: Require (and ship with) PIL
Definitions 定義
PIL, the Python Imaging Library PIL(パイソンイメージング図書館) Motivation 動機づけ
ATContentTypes needs PIL for things like the photo album view and thumbnails all over the place. There is little reason not to ship it, and the Windows and Mac installers already do (according to Limi). ATContentTypesは、いたる所でPILを写真アルバム表示と親指の爪のようなもののために必要とします。それを出荷しないほとんど理由がありません、そして、Windowsとマックインストーラーはすでにします(Limiによって)。 Proposal 提案
However, if we depend on it, this must be explicit, so the Plone installation method should complain. It may be nice to ship Plone with PIL in a subdirectory so people can get it easily. しかし、我々がそれに依存するならば、これは露骨でなければなりませんので、Ploneインストール方法は不満を言わなければなりません。人々が簡単にそれを得ることができるように、サブディレクトリにPILでPloneを出荷してうれしいかもしれません。
PIL 1.1.4 is the minimum version required, but latest bug fixes are in 1.1.5 release candidates. PIL 1.1.4は必要な最小限のバージョンです、しかし、最新のバグフィックスは1.1.5リリース候補であります。
#83: Visual editor (Kupu) integration
Motivation 動機づけ
Kupu is the way to go for wysiwyg editing. It's much more flexible and has many good features for editing. Kupuは、WYSWYG編集に出かける方法です。それにはずっと柔軟で、編集のために多くの良い特徴があります。
Plone also needs a visual editor as the default, and have STX/reST as optional formats if you know what you are doing. In essence, you get this if you turn off the visual editor - but the default in a fresh site is to have Kupu as the editor. Plone もデフォルトとして視覚のエディタを必要とします、そして、あなたがあなたが何をしているかについてわかっているならば、オプションのフォーマットとして STX/reSTを持ってください。本質的には、あなたが視覚のエディタをオフにするならば、あなたはこれを得ます−しかし、新しいサイトのデフォルトはエディタとしてKupuを持つことです。 Assumptions 見せかけ
We are shipping Kupu 1.2.x with Plone 2.1. 我々は、Plone 2.1でKupu 1.2.xを出荷しています。 Proposal 提案
#85: Componentized CSS using CSSRegistry
Motivation 動機づけ
There are a few problems with the default way layout is done in Plone right now - there should be a good way to do the following: レイアウトがたった今Ploneでされるデフォルト方法に関する2、3の問題があります−以下をする良い方法がなければなりません:
Proposal 提案
Implementation 実施
Create the CSS/JS-registry (done, Geir/Matt) CSS/JS-レジストリ(全く、ゲール/マット)をつくってください
Split the plone stylesheets into parts (Limi) plone stylesheetsを部品(Limi)に分けてください
Split the plone javascripts into parts (Geir) plone javascriptsを部品(ゲール)に分けてください
Migrations/installation for Plone 2.1 (Geir) Plone 2.1(ゲール)のための移動/インストール
#86: Catalog Based Folder Listings
Motivation 動機づけ
Plone's folder listings as currently implemented call a folder method which retrieves all objects in a folder (with some optional but expensive filtering). For large folders, this results in high memory usage and slowness because many complex objects will be moved into cache, despite the unlikelihood that more that a small fraction of those objects are needed by the user. The current method requires that screening of content by permission/workflow be done explicitly in the templates or scripts, though all of the necessary information for doing this screening is in the catalog. 現在実行された呼び出しとしてPloneのフォルダリストフォルダ(若干のオプションであるが、高価なろ過で)の全ての対象を取り戻すフォルダ方法。大きなフォルダのために、よりとてもそれらの少ない分数がユーザーによって必要であると反対するありそうもないことにもかかわらず、多くの複雑な物がキャッシュに持ち込まれるので、これはハイメモリー使用と遅鈍に終わります。現在の方法は、このふるい分けをするための必要な情報の全てがカタログであるけれども、許可/仕事の流れによる内容のふるい分けがテンプレートまたはスクリプトではっきりとされることを必要とします。
Changing the folder listing implementations to use the catalog prevents waking up the objects on listing, so that only those objects which the user explicitly views are loaded into memory. Also, using the catalog allows for efficient complex filtering and sorting based on any catalog index, including the content permissions/roles. カタログを使うために実現例をリストしているフォルダを変えることはリストの上で物を目覚めさせるのを妨げます、そのため、ユーザーがはっきりと見るそれらの物だけは記憶に詰められます。また、カタログを使うことは、内容許可/役割を含むどんなカタログインデックスにでも基づく効率的な複雑なろ過とソートを考慮に入れます。
This also makes it possible for tools that depend on the catalog for advanced behaviour - like LinguaPlone, which has parallel objects, and should only return objects in the correct language based on properties in the catalog - to work transparently. これもそれを先進のふるまいのためにカタログに依存する−LinguaPlone(それは平行した物を持ちます)に合って、カタログで特性に基づく正しい言語の対象を返さなければならないだけの−ツールにとって可能にします。そして、透過的に働きます。 Proposal 提案
We need to create new versions of 我々が、新しいバージョンを作成する必要があります folder_contents.pt folder_contents.pt and そして、 folder_listing.pt folder_listing.pt which use catalog queries to generate the content list and may pass along query parameters inherited from the template or the request. Doing this requires installing そしてそれは内容リストを生み出すためにカタログ質問を使って、テンプレートまたは要請から受け継がれる質問パラメータに沿って通るかもしれません。こうすることは、装置することを必要とします ExtendedPathIndex ExtendedPathIndex from the collective in order to restrict the query to items in the current folder. Additionally, supporting the current features of 現在のフォルダで質問をアイテムに制限するために集団から。その上、現在の特徴を支えること folder_contents.pt folder_contents.pt requires adding new indexes for the size and for folder ordering of the contained objects. サイズのために、そして、含まれた物のフォルダ注文のために新しいインデックスを加えることを必要とします。
We will also need to handle explicit sort parameters passed into the template in conjunction with the current explicit ordering mechanism. Initially this can be done by simply disabling the ordering column when an explicit sort is passed into the query. Persistent folder ordering along with combined explicit and catalog 我々は、また、現在の露骨な注文メカニズムとともにテンプレートに渡される露骨なタイプパラメータを取り扱う必要があります。まず最初に、露骨なタイプが質問に通過されるとき、これは単に注文コラムを働かなくすることによってされることができます。合同の完とカタログと一緒の持続的なフォルダ注文 sort_on sort_on based ordering will be the subject another PLIP. ベースの注文は、また別の主題ですPLIP. Deliverables 配達可能なもの
#89: Optimize catalog queries for dates
Motivation 動機づけ
Catalog queries for dates - especially effective and expired date - are horrible inefficient with standard indexes. DateIndex and DateRangeIndex is speeding up the queries and the index size a lot. 日付 — 特に効果的で期限切れの日付 — の間のカタログ質問は、標準のインデックスで能率が悪い恐ろしいものです。DateIndexとDateRangeIndexは、たいへん質問とインデックスサイズの速度を上げています。 Assumptions 見せかけ
CMF 1.4.5+ CMF 1.4.5+ AT 1.3+ 1.3+で Proposal 提案
Replace several date specific indexes with Date or DateRangeIndexes いくつかの日付特定のインデックスを伊達またはDateRangeIndexesと取り替えてください Change the portal query method 入口質問方法を変えてください Implementation 実施
Move the code of CatalogOptimizer from cvs to migration + plones catalog tool. cvsから移動+ plonesカタログツールまで、CatalogOptimizerのコードを動かしてください。
#90: Editable border computation should be optimized
Motivation 動機づけ
When trying to calculate whether to show the green "this document is editable or workflowable", Plone does a lot of expensive checks that can be re-ordered to return the correct True/False value with much cheaper operations than the worst-case scenario. 「この文書は編集可能であるか、workflowableです」ことを緑に明らかにするべきかどうかについて計算しようとするとき、Ploneは最悪のシナリオより非常に安い活動で正しいTrue/False価値を返すために再び整理されることができる多くの高価なチェックをします。 Proposal 提案
#91: Sections (global tabs) should support folder-based structures
Motivation 動機づけ
The current approach to global section tabs in a Plone site are to use portal_actions to supply the items. This has numerous problems: Ploneサイトのタブがアイテムを供給するためにportal_actionsを使うためにそうである世界的な地域への現在の道。これには、多数の問題があります:
Proposal 提案
Implementation 実施
#96: Extensible index object wrapper
Definitions 定義
There is no need to add api methods to content types or slow ttw scripts with an extensible index object wrapper. api方法を内容タイプまたは遅いttwスクリプトに伸長可能なインデックス物包装紙と加える必要が、ありません。
Also see summary また、概要を見てください Proposal 提案
Replace the current IndexableObjectWrapper with an ExtensibleIndexObjectWrapper + a register that contains a mapping between attribute name and a callable. 1レジスターにつき+特質名の間でマッピングを含むExtensibleIndexObjectWrapperによる現在のIndexableObjectWrapperを取り替える、そして、呼ぶことができる。
The ExtensibleIndexObjectWrapper return the indexed object's attribute when the attribute name isn't listed in the registry. If the name is in the registry then the registered callable is called with the object as argument and the value is returned. 特質名が登録所にリストされないとき、ExtensibleIndexObjectWrapperはインデックスを付けられた物の特質を返します。名前がそれから登録所にある、登録された‖呼ぶことができる議論と価値としての物で呼ぶ返す。
IMO there is no need to have a local (per site) registry at the moment so we should follow the sacret rules of KISS and YAGNI and stick to a simple global dict like registry. 我々がsacret規則に従わなければならないように、現在地元の(サイトにつき)登録所を持つ必要がそこになくて私見ながらKISSの、そして、単純な世界的なdictへのYAGNIと棒は、レジストリを好みます。
"#97: Allow the "display menu to work on portal root
Motivation 動機づけ
Being able to set the default view (e.g. a new listing, a folder listing, a welcome page, etc.) of the portal in a consistent, easily accessible way is a common requirement for a very common use case. 入口のデフォルト眺め(例えば新しいリスト、フォルダリスト、ウェルカムページ、その他)を一貫した、簡単に近づきやすい方向でセットすることができることは、非常に一般の使用事件の一般の必要条件です。 Proposal 提案
With the implementation of PLIP78, an interface IBrowserDefault, and a sub-interface ISelectableBrowserDefault was added to Plone. An implementation of this interface was added to ATContentTypes, in BrowserDefaultMixin, which delegates to Archetypes' TemplateMixin. TemplateMixin in turn uses a registry of types-to-available-templates in archetypes_tool. PLIP78、インターフェースIBrowserDefaultと副インターフェースの実施で、ISelectableBrowserDefaultはPloneに加えられました。BrowserDefaultMixinで、このインターフェースの実施はATContentTypesに加えられました。そして、それは ArchetypesのTemplateMixinに職権を委ねます。TemplateMixinは、archetypes_toolで順番にtypes -to-available-templatesのレジストリを使います。
Obviously, the ATContentTypes and Archetypes part of that equation is inappropriate for the portal root, but there is no reason why Portal.py can't implement the interface itself. 明らかに、その方程式のATContentTypesとArchetypes一部は入口根には不適当です、しかし、Portal.pyがインターフェースを実装することができない理由がありません。
As for registration of templates, a simple property on the portal root object should suffice. The generalised type-to-template mapping available to third party products is already provided by the framework used to create third-party types (that is, Archetypes, possibly with ATContentTypes for base classes). The portal root is conceptually a special case anyway, and should probably not automatically get any third-party templates registered for folders. A ZMI property is more accessible to those who want to write their own page templates and use as the front page (also a pretty common use case). テンプレートの登録に関しては、入口の根本のオブジェクトの単純な資産は、十分でなければなりません。第三者製品が利用できる一般化されたテンプレートへのタイプマッピングは、第三者のタイプ(つまり、Archetypes、おそらくベースクラスのためのATContentTypesで)を構築するのに用いられるフレームワークによって、すでに提供されます。入口根はいずれにしろ概念的に特例であって、多分少しのサードパーティのテンプレートも自動的にフォルダのために登録させてはならなくないでしょう。ZMIの資産は、彼ら自身のページにテンプレートとフロントページ(また、かなり一般の使用事件)としての使い方を書きたい人々に、より手に入れやすいです。 Implementation 実施
A quick look at Portal.py suggests that we could: Portal.pyの速い観察は、我々がそうすることができたことを示唆します:
[1] Note that in the ATContentTypes BrowserDefaultMixin, the variable storing the current selected default page is a property called [1]ATContentTypes BrowserDefaultMixinで、現在の選ばれたデフォルトページを保存している変数が呼ばれる資産である点に注意してください default_page default_page. This makes the mechanism consistent with the previously encouraged behaviour of setting a property 。これは、メカニズムを資産をセットすることの以前に促進された作用と一致しているようにします default_page default_page at the folder level to select a default page for that folder, and adds the UI of the そのフォルダのためにデフォルトページを選ぶフォルダレベルで、そして、UIを加える display 表示 menu. However, for the portal root, the meaning of this property is overloaded rather unfortunately to mean "ids of objects to globally consider as the default page", essentially permitting different "magic" ids analogous to メニュー。しかし、入口根のために、この資産の意味は、「グローバルにデフォルトページと思う物のID」(基本的に類似している異なる「魔法の」IDを許すこと)を意味するために、むしろ残念なことに、負担をかけられすぎます index_html index_html. As such, we can't use this property for storing the default page on the portal root. This is actually quite unproblematic, the choice of using this in ATContentTypes' BrowserDefaultMixin was simply as a convenience to those who had already been doing this at the folder level. The use of 。このように、我々は入口根の上にデフォルトページを保存するために、この資産を使うことができません。これは、実は、全くunproblematicです(BrowserDefaultMixinがフォルダレベルですでにこうしていた人々に便宜として単にあったATContentTypesのものでこれを使うことの選択)。使用の default_page default_page at the portal root is encapsulated in portal_utils.browserDefault() and will continue to work as expected. 入口で、根はportal_utils.browserDefault()に簡約されて、予想通りに働き続けます。
#98: Scripted Translation Service Interface
Motivation 動機づけ
Right now the scripted translation process is a whole mess and there are lots of collector issues regarding encoding problems related to scripted translations. There is no way to get the encoding from the strings returned by the translate wrapper. Also there is lots of fallback code inside all this methods for Localizer and/or zope 2.6. たった今、事前に準備された翻訳プロセスは全部の混乱です、そして、たくさんのコレクター問題が事前に準備された翻訳に関連した問題をコード化することに関してあります。ひもから符号化を帰らせる方法が、ありません翻訳する包装紙。また、たくさんの頼れるものコードが、Localizerやzope 2.6のためのこのような方法内部にあります。 Assumptions 見せかけ
We need a sane, fully unicode aware interface to the translation service which is accessible from restricted code. This interface does not support Localizer, Python 2.1 or Zope 2.6 and thus does not have any fallbacks inside. 我々は、制限されたコードからアクセスできる翻訳サービスに、正気の、完全にunicodeな認識のあるインターフェースを必要とします。このインターフェースはLocalizer、パイソン2.1またはZope 2.6をサポートしなくて、このように少しの頼れるものも中に持ちません。
The i18n files need to provide the date translation special message ids, matching msgstrs and translated Weekdays and Month names. i18nファイルは、日付翻訳特別教書ID、あっているmsgstrsと翻訳されたWeekdaysとMonth名を提供する必要があります。 Implementation 実施 utils.py utils.py
TranslationServiceTool TranslationServiceTool
There is a new tool which provides public methods utranslate and localized_time. 方法がutranslateする市民を提供する新しいツールとlocalized_timeがあります。
Localized time 局所化された時間
The localized_time method requires two special message ids present to work as designed. When these msgids are not translated for a language, the default strftime formatting as defined at the portal_properties sheet is used. 設計されて、localized_time方法は働くことを出席している2つの特別教書IDに要求します。これらのmsgidsはいつですか言語のために翻訳する、デフォルトstrftimeフォーマッティングportal_propertiesで定められるように、シートが使われて。
Long time format: 長い時間フォーマット:
Short time format: 短い時間は、フォーマット化します:
Both msgstrs support predefined variable names which have to be used inside the msgstr. These variables are the same as in the strftime formating, but tal style: Supported are %A, %B, %b, %H, %I, %m, %d, %M, %p, %S, %Y, %y, %Z. Variables not numbers (eg weekday and monthname) are passed to the translation service seperately. This means that each weekday / month name needs to be present as msgid as well (english). 両方のmsgstrsは、msgstrの中に使われなければならないあらかじめ定義された変数名をサポートします。これらの変数は、formatingしているstrftimeの場合のように同じこと、しかし、talスタイルです:%A、%B、%b、%H、%I、%m、%d、%M、%p、%S、%Y、%y、数(例えば週日とmonthname)が各々の週日/月名がmsgid(english)としても存在する必要である翻訳サービスseperately. This手段に渡されない%Z. Variablesは、支えます。
Example and default: 例とデフォルト:
msgid "date_format_long" msgstr "${Y}-${m}-${d} ${H}:${M}"
msgid "date_format_short" msgstr "${Y}-${m}-${d}"
msgid「date_format_long」msgstr、「${Y}-${m}-${d}${H}:$」{M}
msgid「date_format_short」msgstr「${Y}-${m}-${d}」
Skin scripts 皮膚スクリプト
Now there are two skin scripts. translate.py returns type string encoded with site encoding. This script uses the new utranslate.py which returns type unicode when required. Using the translate script means you have not thought about unicode. The script itself tries do handle things right, and converts type string to type unicode. Please use utranslate and pass strings as type unicode. 2つの皮膚スクリプトがある。translate.pyは、サイト符号化でコード化されるタイプストリングを返します。このスクリプトは、必要なとき、タイプunicodeを返す新しいutranslate.pyを使います。使います翻訳しますスクリプトが、あなたがunicode.について考えなかったことを意味しますスクリプトは、ためします正しくハンドルものと転向者が、unicode.をタイプするために、ストリングをタイプしますタイプ unicodeとしてutranslateなおよびパスストリングを使用してください。
#99: refactor portal comments rendering
Motivation 動機づけ
It is very hard to follow a thread of discussion with portal discussions since you have to click through to read the comments/replies. Besides, you loose the context/thread as soon as you do so. あなたがコメント/答えを読むために終わりまでクリックしなければならない時から、議論の筋道に入口議論を付け加えるのは非常に難しいです。また、あなたがそうするとすぐに、あなたは前後関係/糸を緩めます。 Proposal 提案
The following needs to be done: 以下は、される必要があります:
quote button for easy replying.
*多分、我々は簡単に答えるために、『引用』ボタンを含めることができます。